【问题标题】:WAAD doesn't refresh access token from javascriptWAAD 不会从 javascript 刷新访问令牌
【发布时间】:2014-12-11 09:04:20
【问题描述】:

对于使用 Windows Azure Active Directory(WAAD) 对用户进行身份验证的应用程序,无法从 javascript 刷新令牌。

所有资源都受 Authorize 属性保护,如果令牌过期,则调用 login.windows.net/{0}。如果请求来自页面加载,它会按预期工作,但如果请求来自 javascript ajax 调用,则无法调用 login.windows.net/{0}。它返回状态 302 和消息

XMLHttpRequest 无法加载 https://login.windows.net/xxx。 请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'xxx' 不允许访问。

如何从 javascript 调用中刷新令牌?

【问题讨论】:

    标签: ajax single-sign-on owin azure-active-directory


    【解决方案1】:

    看起来您使用更适合 Web UX 的方法来保护您的 Web API。 查看 ADAL JS 以获得更可靠的处理 javascript 驱动的应用程序的方法:http://www.cloudidentity.com/blog/2014/10/28/adal-javascript-and-angularjs-deep-dive/ 有关令牌更新如何工作的说明,请参阅该帖子中链接的视频 高温高压 五、

    【讨论】:

    • 我不是在做纯客户端 JS 身份验证。它是一个简单的 MVC 应用程序,具有 WAAD 身份验证和 ajax 调用,需要用户授权。 .
    • 我的意思是,如果你不使用JS驱动的身份验证,你会遇到这样的问题。基于重定向的协议并非旨在处理令牌刷新。如果您需要 UX 和 API 支持,请参阅 cloudidentity.com/blog/2014/04/28/…cloudidentity.com/blog/2014/04/22/…
    • 感谢您的回复,我通读了博客。但我拥有的是一个 MVC Web 应用程序,其控制器实现 System.Web.Mvc.Controller(没有 System.Web.Http.ApiController 实现)。所以它不是 UX 和 API 的混合。UX 页面有几个按钮可以加载使用 jQuery AJAX 调用的数据,其操作方法 - 返回 JSON - 使用 [Authorize] 属性进行保护。 WAAD 登录后,页面和数据加载(使用 AJAX 调用)工作正常。但是几分钟后,这些调用开始失败并显示上述消息。即使我不进行客户端登录/身份验证,您是否建议我使用 ADAL JS?
    • 你有没有想过如何解决这个问题?我现在在我的控制器中遇到这种情况,并且正在使用 Azure AD 身份验证。
    猜你喜欢
    • 1970-01-01
    • 2017-05-16
    • 2021-08-25
    • 2020-04-14
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2022-01-19
    • 2017-06-09
    相关资源
    最近更新 更多