Azure AD如何向用户公开API?

标签 azure azure-active-directory azure-web-app-service

我按照 Microsoft 教程了解如何创建 SPA 和 API 并使用 MSAL 来保护它 ( https://github.com/Azure-Samples/ms-identity-javascript-react-tutorial/tree/main/3-Authorization-II/1-call-api )。

但他们要求像这样公开 API:

对于范围名称,请使用 Todolist.Read。 选择谁可以同意?的管理员和用户选项。 对于管理员同意显示名称,请输入scopeName。 对于管理员同意说明,请输入例如“允许应用读取登录用户的文件。”。 对于用户同意显示名称,请输入scopeName。 对于用户同意说明,请输入例如“允许应用程序读取您的文件。”。

但是,我找不到在哪里可以更改“谁可以同意?”选项。

因此,当我创建新范围时,我可以更改管理范围名称和描述,但没有“谁可以同意?”可用选项。 adding a new scope

当范围创建后,我也无法更改它;它说“仅限管理员”。 scope

最佳答案

当我尝试在 B2C 租户应用程序中公开 API 范围时,我也找不到谁可以同意? 选项:

enter image description here

您需要切换目录到普通的 Azure AD 租户,并将其设置为当前目录,如下所示:

enter image description here

在该 Azure AD 租户中,我注册了一个名为 msal-node-api 的应用程序,并公开了一个 API 范围,我可以在其中看到“谁可以同意?”选项:

enter image description here

现在,我创建了另一个名为 msal-react-spa 的应用注册,并在其中添加了上面的权限:

enter image description here

当我按照同一文档运行示例时,成功身份验证后出现以下屏幕:

enter image description here

关于Azure AD如何向用户公开API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76857503/

相关文章:

asp.net-web-api - Web api 与 Azure AD 的集成测试

linux - 如何将Azure中的Linux服务器迁移到AWS?

azure - 为 azure 数据库进行备份

azure - Terraform 远程状态鸡和蛋

azure - 如何创建 Multi-Tenancy 应用程序的服务主体

azure-active-directory - 使用 Azure Function 应用程序的登录用户验证 Dynamics 365 Web Api

c# - 数十次调用后应用程序服务 502 网关错误

azure - 在 Azure 上使用 `S.D.Stopwatch` 时间变慢

angular - 在 Azure 中部署 Angular 应用程序,但刷新时出现 URL 重写模块错误

rest - 尝试从 Azure 虚拟机访问时,Azure isMemberOf api 出现 "Insufficient privileges to complete the operation."错误