Django, mozilla- django -oid c и admin - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь подключить Okta с помощью пользовательского приложения Django (v.3.0.2), которое я кодирую, используя библиотеку mozilla- django -oid c. Пока что первоначальная аутентификация пользователя и создание учетной записи (с использованием Django модель пользователя ) работают, но я не понимаю, что мне нужно сделать, чтобы иметь Django AdminSite работа.

Админсайт до введения mozilla-django-oidc работал как положено. Я создал администратора с именем «admin» и смог войти в систему.

Чтобы интегрировать библиотеку mozilla-django-oidc, я следовал приведенным ниже инструкциям: https://mozilla-django-oidc.readthedocs.io/en/stable/installation.html. В инструкциях нет никакого конкретного c упоминания AdminSite.

Когда я получаю доступ к AdminSite после интеграции библиотеки, у меня есть следующее:

  1. AdminSite использует значение по умолчанию Шаблон - я предполагал, что он также будет использовать Okta для аутентификации.
  2. Учетная запись администратора "admin", которая раньше могла входить на AdminSite, больше не работает

Моя цель - получить доступ к AdminSite. Я не против, если это будет через Okta или через интерфейс vanilla, если я могу получить к нему доступ.

Ниже приведены соответствующие сегменты из файлов (для интеграции):


urls.py

urlpatterns = [
    path('', static_site.site_index, name='site_index'),
    path('admin/', admin.site.urls),
    path('review/', include('review.urls')),
    path('oidc/', include('mozilla_django_oidc.urls')),
]

settings.py

# OICD
AUTHENTICATION_BACKENDS = (
    'mozilla_django_oidc.auth.OIDCAuthenticationBackend',
)

OIDC_RP_CLIENT_ID = 'xxxxx'
OIDC_RP_CLIENT_SECRET = 'xxxx'
OIDC_RP_SIGN_ALGO = 'RS256'
OIDC_OP_JWKS_ENDPOINT = 'https://dev-xxx.okta.com/oauth2/default/v1/keys'
OIDC_RP_SCOPES = 'openid email profile'

OIDC_OP_AUTHORIZATION_ENDPOINT = 'https://dev-xxx.okta.com/oauth2/default/v1/authorize'
OIDC_OP_TOKEN_ENDPOINT = 'https://dev-xxx.okta.com/oauth2/default/v1/token'
OIDC_OP_USER_ENDPOINT = 'https://dev-xxx.okta.com/oauth2/default/v1/userinfo'

# Provided by mozilla-django-oidc
LOGIN_URL = reverse_lazy('oidc_authentication_callback')

# App urls
LOGIN_REDIRECT_URL = reverse_lazy('review:dashboard')
LOGOUT_REDIRECT_URL = reverse_lazy('site_index')

Любые идеи и указатели приветствуются!

1 Ответ

0 голосов
/ 23 января 2020

Цель была достигнута путем добавления в настройки бэкенда аутентификации по умолчанию:

settings.py

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'mozilla_django_oidc.auth.OIDCAuthenticationBackend',
]

Я не получаю аутентификацию Okta для администратора, но так как я рад, что админ работает, я остановлюсь здесь.

...