跳转到主要内容

适用于Microsoft ADFS和Azure AD的Django身份验证后端

项目描述

Documentation Status https://img.shields.io/pypi/v/django-auth-adfs.svg https://img.shields.io/pypi/pyversions/django-auth-adfs.svg https://img.shields.io/pypi/djversions/django-auth-adfs.svg https://codecov.io/github/snok/django-auth-adfs/coverage.svg?branch=master

适用于Microsoft ADFS和Azure AD的Django身份验证后端

功能

  • 将Django与Windows 2012 R2、2016或云中的Azure AD上的Active Directory集成。

  • 为您的Django项目在内部环境中提供无缝的单点登录(SSO)。

  • 根据从ADFS接收到的信息自动创建用户并将他们添加到Django组。

  • Django Rest Framework (DRF)集成:使用ADFS访问令牌对您的API进行身份验证。

安装

Python包

pip install django-auth-adfs

在项目的settings.py中添加以下设置。

AUTHENTICATION_BACKENDS = (
    ...
    'django_auth_adfs.backend.AdfsAuthCodeBackend',
    ...
)

INSTALLED_APPS = (
    ...
    # Needed for the ADFS redirect URI to function
    'django_auth_adfs',
    ...

# checkout the documentation for more settings
AUTH_ADFS = {
    "SERVER": "adfs.yourcompany.com",
    "CLIENT_ID": "your-configured-client-id",
    "RELYING_PARTY_ID": "your-adfs-RPT-name",
    # Make sure to read the documentation about the AUDIENCE setting
    # when you configured the identifier as a URL!
    "AUDIENCE": "microsoft:identityserver:your-RelyingPartyTrust-identifier",
    "CA_BUNDLE": "/path/to/ca-bundle.pem",
    "CLAIM_MAPPING": {"first_name": "given_name",
                      "last_name": "family_name",
                      "email": "email"},
}

# Configure django to redirect users to the right URL for login
LOGIN_URL = "django_auth_adfs:login"
LOGIN_REDIRECT_URL = "/"

########################
# OPTIONAL SETTINGS
########################

MIDDLEWARE = (
    ...
    # With this you can force a user to login without using
    # the LoginRequiredMixin on every view class
    #
    # You can specify URLs for which login is not enforced by
    # specifying them in the LOGIN_EXEMPT_URLS setting.
    'django_auth_adfs.middleware.LoginRequiredMiddleware',
)

在项目的urls.py中添加以下路径

urlpatterns = [
    ...
    path('oauth2/', include('django_auth_adfs.urls')),
]

这将将这些路径添加到Django

  • /oauth2/login,用户将被重定向到此以启动通过ADFS的登录。

  • /oauth2/login_no_sso,用户将被重定向到此以启动通过ADFS的登录,但强制登录屏幕。

  • /oauth2/callback,ADFS登录后重定向回此。因此,请确保您已在ADFS上设置了重定向URI为此。

  • /oauth2/logout,用于从Django和ADFS注销用户。

您可以在Django模板中使用它们如下

<a href="{% url 'django_auth_adfs:logout' %}">Logout</a>
<a href="{% url 'django_auth_adfs:login' %}">Login</a>
<a href="{% url 'django_auth_adfs:login-no-sso' %}">Login (no SSO)</a>

贡献

欢迎对代码的贡献。有关更多详细信息,请参阅CONTRIBUTING.rst文件。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

django_auth_adfs-1.14.0.tar.gz (16.4 kB 查看哈希值)

上传时间

构建分布

django_auth_adfs-1.14.0-py3-none-any.whl (18.7 kB 查看哈希值)

上传时间 Python 3

由以下机构支持