Интеграция KeyCloack с DRF (Django Rest Framework)

Я начинающий разработчик DRF. Я пытаюсь интегрировать Keycloak с Django Rest Framework. К сожалению, я не смог найти никакой помощи/блога/учебника в интернете. Если у кого-то здесь есть какая-либо информация по этому поводу, пожалуйста, поделитесь.

С нетерпением ждем вашего ответа. Спасибо

Вы можете использовать Oauth2 API KeyCloack для аутентификации и авторизации пользователей djagno. Это то же самое, что реализовать Sign-in с помощью Google или любого другого провайдера.

Мой любимый пакет для реализации социального аута - python-social-auth, и он даже имеет существующий бэкенд для KeyCloack.

Вот как должна выглядеть конфигурация для Oauth2 против KeyCloack:

Сначала, установите social auth в вашем проекте следующим образом

$ 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>
Вернуться на верх