Limit Google OAuth access to one domain using #39;hd#39; param (Django / python-social-auth)(使用参数(django/python-Social-auth)将Google OAuth访问限制为一个域)
问题描述
我正在为我的公司构建一个内部WebApp以供使用,并希望使用我们的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页的视图,以便让他们知道出了什么问题。
这篇关于使用参数(django/python-Social-auth)将Google OAuth访问限制为一个域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用参数(django/python-Social-auth)将Google OAuth访问限制为一个域
- 沿轴计算直方图 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01