使用 openid 从 B2C Azure Active Directory 获取刷新令牌的范围内的“offline_access”值不起作用

Sag*_*jan 2 openid adal azure-ad-b2c angular5

我正在尝试使用 Azure B2C Active Directory 实施身份验证。一切正常,我可以使用特定策略登录并从 B2C 活动目录中获取 access_token。但是,当我尝试在登录 url 的范围内传递值“offline_access”以获取刷新令牌时,它返回一条错误消息,我无法登录。我正在使用 Angular 5 的 ADAL(Azure 目录身份验证库)对 Azure AD 进行身份验证。

这是我的角度 ADAL 配置代码的图像

这是我尝试在 url 范围内传递“offline_access”值时遇到的问题图像

完整的错误信息:

http://localhost:4200/dashboard#error=invalid_request&error_description=AADB2C90012%253a+The+scope+ 'openid+offline_access'+provided+in+request+is+not+supported.%0D%0ACorrelation+ID%253a+05f9f8b0- a8a0-4fdc-9cca-50a4e81a929c%0D%0ATimestamp%253a+2018-01-17+04%253a35%253a36Z%0D%0A&state=a878cc7f-6d87-47e6-a095

我在这里错过了什么吗?或者有另一种方法来获取刷新令牌?

Chr*_*ett 5

首先,您应该将 Azure AD v2.0 身份验证库(也称为 MSAL)与 Azure AD B2C 一起使用而不是使用Azure AD v1.0 身份验证库(也称为 ADAL)。

其次,对于单页应用程序,Azure AD B2C 不会发出刷新令牌。

相反,如Azure AD B2C:使用 OAuth 2.0 隐式流的单页应用登录 > 刷新令牌中所述,单页应用程序必须使用隐藏的 iframe 刷新 ID 和访问令牌。

此令牌刷新由 MSAL 处理。