用于处理外部标识的django中间件。
django-identity-external的Python项目详细描述
简化外部身份消费的中间产品集 用django web框架建立web项目中的信息。
identity.external.persistenremoteusermiddlewarevar
当非标准(不同于REMOTE_USER)环境变量为 用于传递有关外部身份验证用户的信息 中间件可用于自定义变量名,而无需编写 python代码。
例如,当使用来自某个身份验证的信息时 http代理,http请求头值作为前缀HTTP_传递 环境变量。如果经过身份验证的用户名位于X-Remote-User http请求头,在^{tt4}中可用$ 环境变量。正在将变量REMOTE_USER_VAR设置为 HTTP_X_REMOTE_USER,例如使用apache http server指令
SetEnv REMOTE_USER_VAR HTTP_X_REMOTE_USER
并启用identity.external.PersistentRemoteUserMiddlewareVarin MIDDLEWARE之后的列表 django.contrib.auth.middleware.AuthenticationMiddleware喜欢
MIDDLEWARE = [ ... 'django.contrib.auth.middleware.AuthenticationMiddleware', 'identity.external.PersistentRemoteUserMiddlewareVar', ... ]
将运行django.contrib.auth.middleware.PersistentRemoteUserMiddleware 值来自环境变量HTTP_X_REMOTE_USER。
identity.external.remoteuserattrmidware
当用户通过外部身份验证时,例如通过 django.contrib.auth.middleware.RemoteUserMiddleware或 django.contrib.auth.middleware.PersistentRemoteUserMiddleware,附加 外部身份验证源可以提供用户属性。
这个中间件将更新用户的电子邮件地址、名字和姓氏, 和组成员资格,组的前缀是ext:with information coming 从环境变量
- REMOTE_USER_EMAIL
- REMOTE_USER_FIRSTNAME
- REMOTE_USER_LASTNAME
- REMOTE_USER_GROUP_N
- REMOTE_USER_GROUP_1,REMOTE_USER_GROUP_2,…
- REMOTE_USER_GROUPS
其中,这些变量的REMOTE_USER前缀可以用 REMOTE_USER_VAR环境变量,就像 identity.external.PersistentRemoteUserMiddlewareVar。
位于外部组admins(从而被分配到组的用户 ext:admins在django中)也将获得is_staff标志集,因此 将能够登录到管理应用程序。
必须在django数据库中为 要在其中更新的用户成员身份。
在MIDDLEWARE列表中,此中间件必须在 验证中间件,例如
MIDDLEWARE = [ ... 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.PersistentRemoteUserMiddleware', 'identity.external.RemoteUserAttrMiddleware', ... ]
另请参见
- Django项目的外部身份验证: https://www.adelton.com/django/external-authentication-for-django-projects 在2015年欧洲博览会上的演讲。