猿问

Azure 单点登录 - 重定向循环

我在使用 Azure AD 为我们的 pHp 网站设置简单的单点登录时遇到问题。该应用程序已在 azure 中注册,我拥有所有必要的详细信息,例如客户端 ID、秘密、租户。

我的要求是获得授权并撤回用户的员工 ID、姓名和电子邮件 ID。我是第一次进行单点登录,需要一些帮助。

在创建授权 URL 时,我请求code,根据 Azure 文档,这是正确的。授权后我可以成功检索代码。但是,我无法请求id_token以及response_type=code+id_token 的代码,这应该是可能的。我可以跟踪 URL 流并手动提取id_token字段。如果我这样做,系统会提示我登录和 MFA。但是,仅通过在我的手机上提示无限数量的 MFA ping,响应就会进入无限循环。这很奇怪,我的程序有一个检查来重定向代码响应,但这似乎不起作用。我也尝试过使用 session_id cookie,它具有相同的行为。

如果我只是选择代码作为响应类型并使用令牌授予 URL 请求id_token,则不会收到任何响应。它是空白或 null 但没有错误。

如果我犯了错误,你能帮忙提出建议吗?我的方法是先请求代码,然后请求令牌,这是正确还是错误?如何成功检索 id_token。


翻翻过去那场雪
浏览 138回答 1
1回答

绝地无双

response_mode:指定用于将生成的授权代码发送回您的应用程序的方法。可以是form_post或fragment. 对于 Web 应用程序,我们建议使用response_mode=form_post, 以确保将令牌最安全地传输到您的应用程序。code + id_token如果您想在 中使用response_type,您应该使用 OIDC Hybrid Flow。但是,如果您只是code在 中使用response_type,则应该使用授权代码流程。
随时随地看视频慕课网APP
我要回答