首页 > 解决方案 > 如何获取令牌不同的资源 msal2

问题描述

使用 msal v2,我看不到如何获取不同资源的令牌。这是一个简单的 SPA,它调用 2 个不同的 APIS(b2c 上的 2 个不同的资源)。这是如何支持的?为什么我需要为每个不同的服务登录?使用登录方法,您必须指定范围,我不能从不同的资源设置多个范围。遵循此示例但有 2 个资源,将无法正常工作。 https://github.com/Azure-Samples/ms-identity-javascript-react-spa-dotnetcore-webapi-obo

如果我们遵循这种架构,我们是否会遇到一个漏斗问题,即所有调用都将被重定向到一个点?

标签: azure-ad-b2cmsal

解决方案


理解是正确的。目前 AAD B2C /authorize 端点仅允许同意单个资源。并且刷新令牌只能被交易以获得在 /authorize 调用中同意的范围的访问令牌。

可以理解,正如您所说,这意味着您的后端 API 基本上被建模为一个单一资源。您可以同意一个资源上的 30 个范围。

正在努力改变这种行为,以便刷新令牌可以交易多种不同的资源。

如果您使用的是 SPA 应用程序,则新令牌的获取依赖于会话 cookie,并且这种方法没有上述限制。只有依赖刷新令牌的 PKCE SPA 应用程序才会出现此问题。.Net 应用程序也有此限制。


推荐阅读