首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将系统管理标识分配给需要用户分配的Azure AD Enterprise应用程序?

是否可以将系统管理标识分配给需要用户分配的Azure AD Enterprise应用程序?
EN

Stack Overflow用户
提问于 2021-03-25 19:22:31
回答 3查看 2.6K关注 0票数 4

我有一个Azure功能应用程序,它使用通过Azure门户配置的集成Azure AD身份验证。

通过"Express“模式设置,这将创建一个Azure应用程序注册和企业应用程序。

默认情况下,此企业应用程序接受所有用户。因此,这意味着租户中的所有用户都可以触发受保护的Azure函数,这不是我想要的。

我的目标是允许租户中具有管理身份的特定用户和特定Azure资源(如Azure)触发该函数。

因此,我转到Azure函数应用程序的设置,将其属性更改为“用户分配所需”。然后,在用户/组下,我可以添加允许身份验证的用户/组。

在这里,我发现我只能添加常规的AAD用户。托管标识服务主体(即为我的App分配的系统托管标识主体)没有出现在列表中。

我还没有尝试用户分配的托管标识。但我更喜欢使用系统分配的托管身份。

这是一个受支持的场景吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-26 06:59:24

可以,但是要将MSI(本质上是服务主体)添加到企业应用程序的Users and groups中,它不同于添加用户/组,您需要利用azure广告应用角色

请按照以下步骤操作。

1.导航到门户网站Azure Active Directory -> App registrations ->中搜索您的函数应用程序名,使用过滤器All applications ->单击它,-> App roles | Preview -> Create app role ->创建如下-> Apply下面的角色。

2.使用下面的powershell将应用程序角色授予您的MSI(托管标识),替换<appservice-name><functionapp-name>

确保您已经安装了AzureAD powershell模块,并有足够的权限分配应用程序角色(此步骤在蔚蓝门户中不可用)。

代码语言:javascript
复制
Connect-AzureAD
$MSI = Get-AzureADServicePrincipal -Filter "displayName eq '<appservice-name>'"
$funapp = Get-AzureADServicePrincipal -Filter "displayName eq '<functionapp-name>'"
$PermissionName = "Function.Test"
$approle = $funapp.AppRoles | Where-Object {$_.Value -eq $PermissionName}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $funapp.ObjectId -Id $approle.Id

完成上述步骤后,导航到Users and groups,您将发现MSI被添加到其中。

在本例中,您还有另一种方法,只需在AAD中创建一个安全组,并将MSI服务主体作为其成员添加到,然后将组添加到Users and groups中,那么MSI也将能够调用该函数。

总之,你有两个解决方案,你可以选择首选的方法。

  1. 利用App角色
  2. 利用AAD集团

要成功调用函数,还必须确保使用Anonymous设置函数。

导航到函数应用程序中的http触发器,将Authorization level设置为Anonymous,因为我们已经配置了auth。

票数 6
EN

Stack Overflow用户

发布于 2021-09-09 13:35:07

可以通过执行此AAD脚本为企业应用程序添加托管标识

代码语言:javascript
复制
New-AzureADServiceAppRoleAssignment
   -ObjectId {MANAGED-IDENTITY-ID}
   -Id {YOUR-APPROLE-ID}
   -PrincipalId {MANAGED-IDENTITY-ID}
   -ResourceId {ENTERPRISE-APP-OBJECT-ID}
票数 2
EN

Stack Overflow用户

发布于 2021-03-25 22:02:24

几个月前,我与Azure支持公司进行了类似的问题解决会议。

结论是:

  • 可以将用户和组分配给服务主体/企业应用程序,但不能分配托管标识
  • 据我所知,在执行免费AAD计划时,您不能分配组。
  • 如果您可以分配组,那么将托管标识添加到组中可能有效(我自己从未尝试过)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66806261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档