ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用’hd’param(Django / python-social-auth)限制对某个域的Google OAuth访问权限

2019-07-02 03:45:57  阅读:174  来源: 互联网

标签:python django google-oauth2


我正在构建一个供我公司使用的内部网络应用程序,并希望使用我们的Google Apps域来管理来自我们公司域用户名的访问权限(example.com针对此问题的其余部分).

我正在使用:

Django==1.9.5
python-social-auth==0.2.19
+ dependencies

通过阅读其他SO问题,我发现了Goog“托管域”(hd)参数,可以通过以下设置使用:

 SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {'hd': 'example.com'}

该参数已成功附加到初始请求,我可以在授予访问权限之前在URL中看到它.

但是,它并没有像我期望的那样工作.我已经能够使用两个非公司电子邮件地址成功进行身份验证.

我是否误解了“hd =”参数是如何工作的,还是我还需要通过Google Admin仪表板上其他位置的应用限制访问?或者它是否在OAuth2流程中不受支持?

在此先感谢您的帮助.

解决方法:

我知道这是一个较旧的帖子,但我发现它正在搜索如何向OAuth2添加额外的url参数.我无法弄清楚如何设置hd参数.

根据您的具体情况,将白名单设置为您要接受的域.他们可以通过向Google添加未指定的托管域帐户进行身份验证,但不会登录到您的网站.他们将收到AuthForbidden异常,并显示消息“您的凭据不被允许”.

要设置站点中接受的域的白名单,请将以下内容添加到settings.py:

SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS = ['domain.com', 'example.org']

您还可以设置更友好的页面,以便它们不会获得默认的500错误页面:

SOCIAL_AUTH_LOGIN_ERROR_URL = '/authentication_error/'
SOCIAL_AUTH_BACKEND_ERROR_URL = '/authentication_error/'

更新urls.py,让这个url指向一个带有漂亮的HTML页面的视图,让他们知道出了什么问题.

标签:python,django,google-oauth2
来源: https://codeday.me/bug/20190702/1353468.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有