Django SSL客户端身份验证
项目描述
为Django提供SSL客户端证书身份验证的SSL身份验证后端和中间件
许可
MIT许可,完整文本请见LICENSE.txt。
设置
SSL
配置nginx并为您的服务器创建SSL证书,设置服务器私钥、服务器证书和用于签发客户端证书的CA证书的路径。示例配置文件在samples/nginx.conf中。
如果您使用的是OS X,建议您使用OS X KeyChain进行测试,因为它将自动使您的客户端证书在Google Chrome和Safari中可用。您可以在此找到说明,例如http://www.dummies.com/how-to/content/how-to-become-a-certificate-authority-using-lion-s.html
在其他平台上,有许多教程介绍了如何使用OpenSSL完成此操作,例如http://pages.cs.wisc.edu/~zmiller/ca-howto/
重新启动您的nginx(sudo nginx -s restart),确保绿色独角兽正在运行,并检查您的https://网址是否加载了您的应用程序,并且服务器证书有效。
本模块
运行setup.py(sudo python setup.py install)或使用
pip install django_ssl_auth
安装最新版本编辑您的
settings.py
将
"django_ssl_auth.SSLClientAuthMiddleware"
添加到您的MIDDLEWARE_CLASSES
将
"django_ssl_auth.SSLClientAuthBackend"
添加到您的AUTHENTICATION_BACKENDS
配置
在
settings.py
中,您需要完成以下两件事定义一个函数,该函数可以返回一个字典,其中包含您用户模型所需字段,例如
USER_DATA_FN = 'django_ssl_auth.fineid.user_dict_from_dn
是一个示例实现,它从芬兰政府发行的ID智能卡的DN中获取所需的字段,用于contrib.auth.models.User
。要自动创建所有有效证书持有者的
User
,请设置AUTOCREATE_VALID_SSL_USERS = True
。默认情况下,自动创建的用户将被设置为不活跃,考虑使用User.is_active字段在您的LOGIN_REDIRECT_URL视图中通知用户其状态。
有关详细信息,请参阅
testapp/ssltest/settings.py
可选配置
如果您想使用标准登录URL,请设置
SSLCLIENT_LOGIN_URL = None
或将其保留为未定义。对于您想要为SSL认证设置单独登录URL的情况,请设置SSLCLIENT_LOGIN_URL = “/YOUR_URL/”
。SSLCLIENT_LOGIN_URL
旨在用于某些用户通过常规Django登录而不使用SSLCLIENT认证,但您为使用SSLCLIENT认证的用户设置了单独登录URL的场景。如果您想允许不安全的请求(例如,您的Django应用程序位于代理或负载均衡器后面),请设置
SSLCLIENT_ALLOW_INSECURE_REQUEST = True
。如果不设置,默认将要求安全连接。
智能卡支持
有关(芬兰)说明,请参阅
doc/fineid/FINEID.md
待办事项
活动目录集成。
如何获取帮助
请在http://stackoverflow.com/上提出您的问题,我在那里很活跃,并且更有可能公开回答您。您还可以尝试联系TheJoey在#django@freenode
项目详情
django-ssl-auth-2.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a06cc247bfc4511e9850fc0d198e356f1460a533a187f7052df28dc1f8d02ace |
|
MD5 | 8720a2fb2ba590db03b1257ce0fe6ed0 |
|
BLAKE2b-256 | 9da25c8b6aaf5553c0f3b865709cbfd8cbdc9f02e1973cca3983db370615b77d |