gpt4 book ai didi

azure - 从 SPA 调用 API 时委派 Azure Active Directory 角色

转载 作者:行者123 更新时间:2023-12-03 03:07:39 25 4
gpt4 key购买 nike

我有一个单页应用程序 (SPA) 和一个 API。两者均通过使用基于角色的访问控制 (RBAC) 的 Azure Active Directory 进行保护。我可以使用 ADAL 登录并查看我的 SPA。我还可以登录、调用我的 API 并查看我给自己的角色声明。

我想从 SPA 调用 API。我已将 API 委托(delegate)权限添加到 SPA。我还点击了“授予权限”按钮,因此我看不到同意屏幕。

问题是当 SPA 调用 API 时,不会出现角色声明,因此 API 始终返回 403 Forbidden 响应。我该如何解决这个问题?

更新

这是我的 API 的 list :

{
"appId": "[API Client ID]",
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"displayName": "Read Device",
"id": "b2e6f6c2-c3d5-4721-ad49-0eea255ccf45",
"isEnabled": true,
"description": "Can read a device.",
"value": "Device.Read.All"
}
],
...
}

在我的 SPA 中,我使用 ADAL 和 adal-angular,如下所示:

var azureActiveDirectory = {
'instance': 'https://login.microsoftonline.com/',
'tenant': '[My Tenant ID]',
'clientId': '[SPA Client ID]',
'redirectUri': 'http://localhost:8080/',
'endpoints': {
'http://localhost:5000': '[API Client ID]'
}
adalAuthenticationServiceProvider.init(azureActiveDirectory, $httpProvider);

最佳答案

显然,嵌套组中的角色不可传递,即,如果我是组 2 的成员,则即使组 2 是组 2 的成员,我也没有授予组 1 的角色:

  • 第 1 组
    • 具有应用程序 1 中的角色
    • 有一个名为组 2 的成员

这样的功能还没有实现,这绝对令人难以置信。我已对 UserVoice 提出了建议。请投票支持该建议。

关于azure - 从 SPA 调用 API 时委派 Azure Active Directory 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com