mozilla- django -oid c проблема с Azure AD B2C - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь настроить пакет "mozilla- django -oid c" в Django. Для аутентификации я использую политику Azure Active Directory B2 C, так что это мой сервер федерации.

Когда я нажимаю кнопку входа в систему, я получаю этот URL-адрес, который мне кажется неправильным, я разделю его, для удобства:

1004 *https://TENANTID.b2clogin.com/TENANTID.onmicrosoft.com/oauth2/v2.0/authorize?p=b2c_1_TENANTID_signin response_type = код и сфера = OpenID + электронная почта & client_id = XXXXXXXXXXXXXXX & redirect_uri = HTTP% 3A% 2F% 2Flocalhost% 3A8000% 2Foidc% 2Fcallback% 2F & состояние = pt8aYXicnYRSQkkB8kwHSv4hQwt9Xzre & нонс = UfLfk6QovA2inpfo9W7zS2MZHLpO1tkJ

и URL, который мне нужен, имеет следующий формат: https://TENANTID.b2clogin.com/TENANTID.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_TENANTID_SIGNIN&client_id=XXXXXXXXXXXXX&nonce=defaultNonce&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Foidc%2Fcallback%2F&scope=openid&response_type=id_token&prompt=login

На главной странице у меня есть этот код:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home page</title>
</head>
<body>
  <h3>
    Welcome to home page
  </h3>

 {% if user.is_authenticated %}
  <p>Current user: {{ user.email }}</p>
  <form action="{% url 'oidc_logout' %}" method="post">
    <input type="submit" value="logout">
  </form>
{% else %}
  <a href="{% url 'oidc_authentication_init' %}">Login</a>
{% endif %}

</body>

мой код в settings.py

OIDC_RP_SIGN_ALGO = "RS256"
OIDC_RP_CLIENT_ID = "xxxxxxxxxxxxxx" #fake client id just for this post
# OIDC_RP_CLIENT_SECRET = os.environ['OIDC_RP_CLIENT_SECRET']
OIDC_OP_AUTHORIZATION_ENDPOINT = 
"https://TENANTID.b2clogin.com/TENANTID.onmicrosoft.com/oauth2/v2.0/authorize? 
p=b2c_1_TENANTID_signin"
OIDC_OP_TOKEN_ENDPOINT = "https://TENANTID.b2clogin.com/TENANTID.onmicrosoft.com/oauth2/v2.0/token? 
p=b2c_1_TENANTID_signin"
# OIDC_OP_USER_ENDPOINT = "<URL of the OIDC OP userinfo endpoint>"
LOGIN_REDIRECT_URL = "http://localhost:8000/oidc/callback/"
LOGOUT_REDIRECT_URL = "http://localhost:8000/welcome/

Примечание: я не знаю, что поместить в эту переменную "OIDC_RP_CLIENT_SECRET", а также "OIDC_OP_USER_ENDPOINT"

Любая помощь, пожалуйста, получить правильный URL в этой конфигурации? Спасибо

1 Ответ

0 голосов
/ 31 марта 2020

Мне пришлось обновить файл views.py из библиотеки, чтобы получить нужный мне URL. Документация была очень плохой, но по крайней мере она работает.

...