azure-ad-b2c - 如何获取令牌不同的资源 msal2
问题描述
使用 msal v2,我看不到如何获取不同资源的令牌。这是一个简单的 SPA,它调用 2 个不同的 APIS(b2c 上的 2 个不同的资源)。这是如何支持的?为什么我需要为每个不同的服务登录?使用登录方法,您必须指定范围,我不能从不同的资源设置多个范围。遵循此示例但有 2 个资源,将无法正常工作。 https://github.com/Azure-Samples/ms-identity-javascript-react-spa-dotnetcore-webapi-obo
如果我们遵循这种架构,我们是否会遇到一个漏斗问题,即所有调用都将被重定向到一个点?
解决方案
理解是正确的。目前 AAD B2C /authorize 端点仅允许同意单个资源。并且刷新令牌只能被交易以获得在 /authorize 调用中同意的范围的访问令牌。
可以理解,正如您所说,这意味着您的后端 API 基本上被建模为一个单一资源。您可以同意一个资源上的 30 个范围。
正在努力改变这种行为,以便刷新令牌可以交易多种不同的资源。
如果您使用的是 SPA 应用程序,则新令牌的获取依赖于会话 cookie,并且这种方法没有上述限制。只有依赖刷新令牌的 PKCE SPA 应用程序才会出现此问题。.Net 应用程序也有此限制。
推荐阅读
- php - Laravel - 会话没有正确存储/没有持久化?
- c# - 非静态字段、方法或属性需要 Automapper 对象引用
- php - PHP 不推荐使用 each() 替换
- python - 将列分组并相应地填充
- c++ - Google Benchmark 作为 cmake 依赖项
- azure - 在 AKS 中添加节点 - 31 个 IP
- html - 如何将选定的多个检查值放入对象数组中
- mongodb - MongoReactiveRepository - 按值列表查找(IN 运算符)
- button - 嵌套的 tkinter 命令函数如何工作?
- javascript - 为什么“this”关键字总是在 node.js 中返回 undefined?