使用OpenID Connect (OIDC) 验证您的用户
项目描述
Makina Django OIDC
这个库允许通过Open ID Connect (OIDC) 协议将单点登录 (SSO) 集成到Django中。
它可以用于使用身份提供者(Keycloak等)设置单点登录,或使用Google、Twitter等登录。
警告:这个库尚未经过审计。然而,我们基于 pyoidc,我们认为这是一个合理的OIDC实现。
功能
- 通过预制的
Provider
类轻松配置。 - 支持多个提供者
- 易于与 Django权限系统 集成
- 高度可定制的架构,适用于大多数需求
- 后端注销
- 合理的默认安全设置
路线图
- 支持
django-rest-framework
集成的Bearer
认证 - 前端注销
致谢
这个库建立在许多人的工作之上。首先,感谢所有 pyoidc 的维护者,因为他们完成了所有的规范实现。这个库主要关注Django和pyoidc之间的粘合剂。
我们还受到了许多启发
mozilla-django-oidc
,因为它在登录重定向URI管理方面的表现django-auth-oidc
,因为它提供了钩子系统
如果您想了解我们为什么决定实现自己的库,请参阅此处的文档。
文档
文档由 readthedocs 提供托管。
安装
首先,安装 Python 包
pip install makina-django-doic
然后,在 django.contrib.sessions
和 django.contrib.auth
之后将库应用到您的Django应用程序中
INSTALLED_APPS = [
"django.contrib.auth",
"django.contrib.sessions",
...
"django-pyoidc"
]
别忘了添加会话中间件!在 settings.py
中添加
MIDDLEWARE = [
"django.contrib.sessions.middleware.SessionMiddleware",
]
现在,是时候运行迁移操作了,因为我们创建了一个数据库表(在此处了解原因)。在项目目录中运行
./manage.py migrate
我们还需要一个缓存(在此处了解原因),因此让我们为开发目的配置一个简单的缓存。在 settings.py
中添加
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.locmem.LocMemCache",
"LOCATION": "unique-snowflake",
}
}
现在,您可以从 可用的提供者 中选择一个身份提供者。提供者类是快速生成特定身份提供者的库配置和URL的一种方法。您也可以选择[手动设置]。
在您的设置文件旁边创建一个名为 oidc.py
的文件并初始化您的提供者
from django_pyoidc.providers.keycloak import KeycloakProvider
my_oidc_provider = KeycloakProvider(
op_name="keycloak",
client_secret="s3cret",
client_id="my_client_id",
keycloak_base_uri="http://keycloak.local:8080/auth/", # we use the auth/ path prefix option on Keycloak
keycloak_realm="Demo",
logout_redirect="http://app.local:8082/",
failure_redirect="http://app.local:8082/",
success_redirect="http://app.local:8082/",
redirect_requires_https=False,
)
然后,您可以在Django配置中添加以下行
from .oidc_providers import my_oidc_provider
DJANGO_PYOIDC = {
**my_oidc_provider.get_config(allowed_hosts=["app.local:8082"]),
}
最后,将OIDC视图添加到URL配置(urls.py
)中
from .oidc_providers import my_oidc_provider
urlpatterns = [
path("auth", include(my_oidc_provider.get_urlpatterns())),
]
现在,您可以开始了!
如果您在执行这些说明时遇到困难,请查看快速入门教程。
用法/示例
我们在文档中编写了大量的“如何做”指南。
附录
商业支持
该项目由Makina Corpus赞助。如果您需要关于您项目的帮助,请联系我们:contact@makina-corpus.com
报告安全漏洞
许可证
作者
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分发
构建分发版
django_pyoidc-0.0.13.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b9c342210ace0ff4fdc74d0434c7bf98ae0ff1c53d5cd3e03bbd256e7546706e |
|
MD5 | 2a583b14444f93e0b908bd8963010d2a |
|
BLAKE2b-256 | d8af43cd9d03671909188e8c3d2bfe85af7b2d962009b6168f9bbf332ec85c6c |
django_pyoidc-0.0.13-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 69be4561c68597a485b994aaeca1e8384baeac1ce0d7f154cd7f73e5534a244b |
|
MD5 | 5abde99385e3149857440aa466f9fb28 |
|
BLAKE2b-256 | 95cddb5f384cf38a156d36d87b8eda22494479f761cdc91901775d5828d50674 |