【问题标题】:Why is "Application permissions" disabled in Azure AD's "Request API permissions"?为什么 Azure AD 的“请求 API 权限”中禁用了“应用程序权限”?
【发布时间】:2019-12-14 04:55:33
【问题描述】:

我正在尝试授予控制台应用在 Azure AD 中调用 API 的权限。

当我进入“添加权限”时,“应用程序权限”是灰色的,我只能选择“委托权限”。

我的理解是,应用程序权限适用于控制台应用程序,因为它在后端运行,用户无需登录。

来自“应用程序权限”的帮助文本:

您的应用程序在没有登录用户的情况下作为后台服务或守护程序运行。

“委派权限”的帮助文本:

您的应用程序需要以登录用户的身份访问 API。

为什么禁用“应用程序权限”?

【问题讨论】:

  • 您是否在 API 的 appRoles 数组中定义了应用权限?
  • 您必须在 azure 门户中创建租户。权限显示为灰色,因为您在未创建租户的情况下创建了应用程序。如果您还有其他疑问,请告诉我
  • @MdFaridUddinKiron 我肯定有租客...我认为这不是问题。
  • @juunas 不,我会使用这些关键字检查文档。

标签: azure azure-active-directory azure-ad-b2b


【解决方案1】:

据我了解,您正在公开受 Azure AD 保护的自定义 API。如果是这样,您需要通过编辑您的 api 应用程序的清单来define the application permission

清单:

"appRoles": [
        {
            "allowedMemberTypes": [
                "Application"
            ],
            "description": "Apps that have this role have the ability to invoke my API",
            "displayName": "Can invoke my API",
            "id": "fc803414-3c61-4ebc-a5e5-cd1675c14bbb",
            "isEnabled": true,
            "lang": null,
            "origin": "Application",
            "value": "myTestRole"
        }
    ]

然后会出现申请权限。

【讨论】:

  • 就是这样!我为新角色的 id 属性手动生成了 GUID(PowerShell > New-Guid > Enter)。我不知道是否有办法在 Portal 中做到这一点(或者它是否必须是 GUID),但它接受了。
  • 当心,违反直觉的“显示名称不能包含空格。”根据链接的文档。
  • 这似乎是微软应该为它构建一个 GUI/UI 刀片的东西,不是吗?
  • @Journeyman1234 是的,只需注意 id 必须是唯一的 GUID。
  • @JBernardo 您实际上并没有那样授予它权限。这真的很混乱。相反,您将注册的应用程序添加到您的订阅中并应用读者角色,有点通过 IAM。见这里medium.com/@crlmas07/…
【解决方案2】:

您实际上并没有那样授予它权限。这真的很混乱。相反,您将注册的应用程序添加到您的订阅中并应用读者角色,有点通过 IAM。见这里:

https://medium.com/@crlmas07/programmatic-access-to-azure-portal-d925ea90831e

【讨论】:

  • 我还找到了另一种轻松创建应用程序的方法。它被称为服务主体,并在命令行中自动添加角色:docs.microsoft.com/en-us/cli/azure/… 感谢您为我指出正确的方向。我给了你一笔赏金
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多