在本文档中,它提供了调用 Web API 的 Web 应用程序的完整流程:
- Web 应用程序执行策略,用户完成用户体验。
- Azure AD B2C 向浏览器返回一个 (OpenID Connect) id_token 和一个授权代码。
- 浏览器将 id_token 和授权代码发布到重定向 URI。
- Web 服务器验证 id_token 并设置会话 cookie。
- Web 服务器通过向 Azure AD B2C 提供授权代码、应用程序客户端 ID 和客户端凭据来向 Azure AD B2C 请求 access_token。
- access_token 和 refresh_token 返回到 Web 服务器。
- 使用授权标头中的 access_token 调用 Web API。
- Web API 验证令牌。
- 安全数据返回到 Web 应用程序。
查看 6. 并使用 Azure-Samples 存储库中的代码active-directory-b2c-dotnet-webapp-and-webapi ,我无法得到该行
AuthenticationResult result = await confidentialClient.AcquireTokenByAuthorizationCode(Globals.Scopes, notification.Code).ExecuteAsync();
返回一个 refresh_token。它返回一个 IdToken 和 AccessToken 但没有 RefreshToken。
通过使用我的浏览器和 Postman 并按照本文档中的步骤使用相同的 B2C 租户和应用程序,我确实按预期获得了刷新令牌。
这个问题与我的类似,并且其中一个答案中提到的博客文章提供了解决没有刷新令牌的症状的方法,但我的问题仍然存在:
我怎样才能AcquireTokenByAuthorizationCode
返回一个 refresh_token?