Azure AD SSO 不会回复无提示登录请求



为Moodle启用SSO与Azure AD集成后,当Moodle向Azure AD发送静默登录请求时,它不会响应该请求。并显示以下错误。AADSTS50058:发送了静默登录请求,但没有用户登录。用于表示用户会话的cookie未在请求中发送到Azure AD。如果用户正在使用Internet Explorer或Edge,并且发送静默登录请求的web应用程序与Azure AD终结点(login.microsoftonline.com(位于不同的IE安全区域,则可能会发生这种情况。

我所期望的是Azure AD将静默登录请求重定向回服务Moodle,就像ADFS一样。

您查看了一些故障排除指南吗?

我的同事Frank Hu在博客中写道:

AADSTS50058的原因发生错误的原因是静默登录被发送到login.microsoftonline.com端点,但是AADSSO cookie没有被检测到。此cookie决定用户是否登录。无声登录仅用于如果已知用户已登录或已刷新,则使用令牌来交换新的访问令牌。

通过在第一次登录时选中KMSI框,这将添加KMSI cookie,让您刷新访问令牌,这样用户就不会在更长的时间内接收此错误。

其他可能的解决方案:

可能的解决方案#1主动检查过期情况您可以尝试通过检查是否具有有效的id令牌。如果您的ID令牌无效,您将询问用户再次登录。您可以通过以下方式检查ID Token是否有效使用AuthenticationContext.getCachedToken(客户端ID(获取令牌然后检查JWT令牌中的Expiration。

可能的解决方案#2发现错误并要求用户登录再次要解决此错误,您需要在回调,您可以将其传递到acquiretoken ADALJS函数中。如果如果发生AADSTS50058错误,您将要求用户再次登录。

可能的解决方案#3浏览器扩展CookieBlockers和ThirdParty Cookies已禁用某些用户可能会遇到此问题,原因是为跟踪目的阻止cookie的浏览器扩展。这将导致此AADSTS50058错误发生,您需要将其列入白名单中浏览器扩展插件中的login.microsoftonline.com端点以避免再次接收到该错误。

如果第三方cookie在浏览器中禁用。在您的浏览器以防止此错误发生。

最新更新