我试图在django中配置“mozilla django oidc”包。为了进行身份验证,我使用Azure Active Directory B2C策略,因此这是我的联合服务器
当我点击登录按钮时,我得到了这个URL,它看起来不对,我将拆分它,只是为了方便:
在主页中,我有以下代码:
<!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\u RP\u CLIENT\u SECRET”和“OIDC\u OP\u USER\u ENDPOINT”中放什么
请提供任何帮助以获取此配置中的正确URL? 谢谢
我必须从库中更新views.py文件才能获得所需的URL。 文档很差,但至少它可以正常工作
为了获得所需的URL,您需要删除端点中的授权参数:
OIDC_OP_AUTHORIZATION_ENDPOINT
OIDC_OP_TOKEN_ENDPOINT
这将为您产生新的端点,如下所示
现在您缺少URL的一部分,因此可以使用以下代码将“policy”授权参数添加回URL:
你能用
OIDC_USE_NONCE = False
而不是将nonce
设置为defaultNonce
吗编辑:我应该提到这并不能解决
response_type
和nonce
的问题相关问题 更多 >
编程相关推荐