【发布时间】:2018-01-21 15:55:09
【问题描述】:
我正在开发一个以 Azure AD B2C 作为身份提供者的 SPA。我正在使用MSAL JavaScript library,它大部分工作正常。我可以为我的 Web API 后端创建用户、登录并获取访问令牌。
目前唯一的问题是 B2C 端点没有返回刷新令牌,因此当访问令牌过期时,UserAgentApplication 类中的 acquireTokenSilent 方法(旨在使用刷新令牌刷新过期的访问令牌)失败。
我在 B2C 中的应用程序在其属性中配置了“包括 Web 应用程序/Web API”和“允许隐式流”设置为“是”。在 API 访问部分,“openid”和“offline_access”范围都在“访问用户的个人资料”下打勾。应用程序本身具有“读取”、“写入”和“用户模拟”范围(不确定这是否重要)。
“offline_access”包含在我的作用域中,我尝试创建一个应用程序,例如读/写作用域并包含它(如“https://mytenant.onmicrosoft.com/testapp/offline_access”),但似乎没有任何效果。响应永远不会有刷新令牌,无论是 id 令牌还是访问令牌。
我注意到,当我转到我创建的 SignUp-SignIn 策略并尝试从那里运行端点时,下拉菜单中甚至没有“offline_access”范围。即使我复制底部的“运行端点”链接并在运行之前将范围添加到 URL,响应也不包含刷新令牌。
当我点击顶部的链接时,它似乎给了我一些关于端点的详细信息,并且只有“openid”在受支持的范围内。
不确定我在这里缺少什么,所以任何想法都会受到赞赏。
【问题讨论】:
标签: oauth-2.0 openid-connect azure-ad-b2c msal