可重复使用的django应用程序,方便gov.uk员工单点登录
django-staff-sso-client的Python项目详细描述
Django Staff SSO客户端
用于staff-sso
要求
安装
pip install django-staff-sso-client
配置
将以下内容添加到您的设置文件中:
INSTALLED_APPS=[
[...]
'authbroker_client',
]
# authbroker config
AUTHBROKER_URL = 'speak-to-webops-team-for-access'
AUTHBROKER_CLIENT_ID = 'speak-to-webops-team-for-access'
AUTHBROKER_CLIENT_SECRET = 'speak-to-webops-team-for-access'
添加'authbroker_client.backends.AuthbrokerBackend'
身份验证后端,例如:
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'authbroker_client.backends.AuthbrokerBackend',
]
添加登录URL(必须是'/auth/login')
LOGIN_URL = reverse_lazy('authbroker:login')
添加登录重定向URL,例如
LOGIN_REDIRECT_URL = reverse_lazy('home_page')
最后,将其添加到主文件urls.py
中:
path('auth/', include('authbroker_client.urls'))
或者,如果您使用的是django<;2:
url('^auth/', include('authbroker_client.urls', namespace='authbroker', app_name='authbroker_client'))
现在应该有一个/auth/login/
url,它引导用户通过staff-sso
登录流。一旦用户
通过staff-sso
(并选择标识提供程序)进行身份验证,它们将被重定向回您的应用程序。
然后,具有匹配电子邮件地址的本地django用户将登录。如果用户条目被创建
数据库中尚未存在。
一旦通过身份验证,用户将被重定向到settings.LOGIN_REDIRECT_URL
使用django @login_required
装饰器来保护单个视图,或者如果要保护所有视图,请使用此中间件:
MIDDLEWARE = [
[...]
'authbroker_client.middleware.ProtectAllViewsMiddleware',
]
如果您确实希望在应用程序中使用管理界面,则在使用此模块时,还需要安装并配置custom_usermodel。
待办事项:
- 请确保在宽限期(例如1分钟)后与
staff-sso
进行has_valid廑token()检查 - 改进
authbroker_client/views.py
中的异常处理逻辑