KeyCloack 与 DRF(Django Rest Framework)集成

问题描述 投票:0回答:2

我是一名初级 DRF 开发人员。我正在尝试将 Keycloak 与 Django Rest Framework 集成。不幸的是,我无法在线找到任何类型的帮助/博客/教程。

django django-rest-framework
2个回答
0
投票

您可以使用KeyCloack的Oauth2 API对您的djagno用户进行身份验证和授权。与使用 Google 或任何其他提供商登录相同。

我最喜欢的实现社交身份验证的包是 python-social-auth,它甚至有一个现有的 KeyCloack 后端。

以下是针对 KeyCloack 的 Oauth2 配置应如下所示:

首先,在您的项目中设置社交身份验证,如下所示

$ pip install social-auth-app-django

在你的

settings.py

INSTALLED_APPS = (
    # ...
    'social_django',
    # ...
)

AUTHENTICATION_BACKENDS = (
    'social_core.backends.keycloak.KeycloakOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)

# Add you connection settings here
SOCIAL_AUTH_KEYCLOAK_KEY = 'test-django-oidc'
SOCIAL_AUTH_KEYCLOAK_SECRET = 'a7a41-245e-...'
SOCIAL_AUTH_KEYCLOAK_PUBLIC_KEY = \
    'MIIBIjANBxxxdSD'
SOCIAL_AUTH_KEYCLOAK_AUTHORIZATION_URL = \
    'https://iam.example.com/auth/realms/voxcloud-staff/protocol/openid-connect/auth'
SOCIAL_AUTH_KEYCLOAK_ACCESS_TOKEN_URL = \
    'https://iam.example.com/auth/realms/voxcloud-staff/protocol/openid-connect/token'

在你的

urls.py

urlpatterns = [
    ...
    path('auth/', include('social_django.urls', namespace='social'))
    ...
]

然后将其添加到您的登录页面模板中:

<a href="{% url 'social:begin' 'keycloack' %}?next={{ request.path }}">Login with KeyCloack</a>

-1
投票

你找到解决办法了吗???

© www.soinside.com 2019 - 2024. All rights reserved.