使用Azure CLI为Web API启用托管身份范围

h5qlskok  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(126)

我正在尝试遵循此教程:
https://learn.microsoft.com/en-us/azure/app-service/scenario-secure-app-access-microsoft-graph-as-app?tabs=azure-cli&tryIt=true&source=docs#code-try-1
我到了我需要使用Azure CLI的部分,我以前从未使用过。我浏览了教程中的命令,并获得了“权限不足”。因此,我去了用户,然后分配/角色,我是我的帐户的全局管理员,我添加了应用程序和Azure云管理员,我仍然得到相同的错误。你知道我该怎么解决吗?

plicqrtu

plicqrtu1#

由于门户没有足够的可能性,因此您需要使用Az CLI将托管身份的任何api权限授予MSDoc中给出的应用服务或Web应用。
根据上面的文档,我试图在发布Web应用程序后在我的环境中启用权限,它的工作原理如下。
1.通过创建具有当前单租户范围的新应用注册,在Web应用中的settings -> Authentication下添加了身份提供程序(Microsoft)。

1.完成后,转到Web应用程序中的身份,并启用系统身份状态以将应用程序服务与Azure AD链接。
1.之后,执行下面的CLI脚本以启用上面文档中给出的图形API权限。

az login
webApp="caroap"
sprincipalId=$(az resource list -n $webApp --query [*].identity.principalId --out tsv)
graphResId=$(az ad sp list --display-name "Microsoft Graph" --query [0].id --out tsv)
APPRoleId=$(az ad sp list --display-name "Microsoft Graph" --query "[0].appRoles[?value=='User.Read.All' && contains(allowedMemberTypes, 'Application')].id" --output tsv)
uri=https://graph.microsoft.com/v1.0/servicePrincipals/$spId/appRoleAssignments
body="{'principalId':'$sprincipalId','resourceId':'$graphResId','appRoleId':'$APPRoleId'}"
az rest --method post --uri $uri --body $body --headers "Content-Type=application/json"
  • 输出:*

转到Azure AD中的企业应用程序,使用应用程序类型筛选为 “托管身份”。检查企业应用程序下的权限。您将能够看到所示的已启用权限。

需验证如下:

验证是否正在使用任何特定的RBAC角色或策略:您的操作能力有时可能会受到Azure策略或自定义基于角色的访问控制(RBAC)角色的限制。
如果您正在寻求使用Azure Active Directory授权访问Azure应用程序配置,您还可以使用Azure基于角色的访问控制(RBAC)向服务主体授予权限。有关详细信息,请参阅MSDoc

相关问题