我正在尝试使用Azure B2C Active Directory实现身份验证。一切正常,我可以登录并从特定策略的B2C活动目录中获取access_token。但是当我试图传递价值" offline_access"在登录url范围内获取刷新toke它返回错误消息,我无法登录。 我正在使用Angular 5的ADAL(Azure目录身份验证库)对Azure AD进行身份验证。
Here is image my angular ADAL configuration codes
完整的错误讯息:
http://localhost:4200/dashboard#error=invalid_request&error_description=AADB2C90012%253a+The+scope+'的OpenID + offline_access'。+前提+在+请求是+不支持+%0D%0ACorrelation + ID%253A + 05f9f8b0-a8a0-4fdc-9cca -50a4e81a929c%0D%0ATimestamp%253A + 2018年1月17日+ 04%253a35%253a36Z%0D 0A%&安培;状态= a878cc7f-6d87-47e6-9965-d2536aa06ea6
我在这里遗漏了什么吗?或者还有另一种获取刷新令牌的方法吗?
答案 0 :(得分:3)
首先,您应该使用the Azure AD v2.0 Authentication Library - 也称为MSAL - 而不是使用the Azure AD v1.0 Authentication Library - 也称为ADAL - 与Azure AD B2C。
其次,对于单页面应用程序,Azure AD B2C不会发出刷新令牌。
相反,如Azure AD B2C: Single-page app sign-in by using OAuth 2.0 implicit flow > Refresh tokens所述,单页应用程序必须刷新ID并使用隐藏的iframe访问令牌。
此令牌刷新由MSAL处理。