【发布时间】:2023-03-25 06:31:01
【问题描述】:
在带有 PowerShell 模块 MicrosoftTeams 的 Azure 自动化帐户中使用系统托管标识。
Connect-MicrosoftTeams 支持使用带有-Identity 开关的系统管理身份登录。
我不确定需要为服务主体分配哪些权限才能使用 MicrosoftTeams PowerShell 模块 cmdlet。
我想使用 PowerShell 和系统托管标识分配 TeamsAppPermissionPolicy 和 TeamsAppSetupPolicy。 (使用我的个人云帐户当然效果很好。使用团队管理员角色,即不使用托管身份)
每当执行命令Get-Team 时,我都能列出所有团队。
当我执行 Grant-csTeamsAppSetupPolicy 或 Grant-csTeamsAppPermissionPolicy 时,我收到一个错误:Grant-csTeamsAppPermissionPolicy : The remote server returned an error: (404) Not Found. 这是我需要使用的这两个 legacy 命令。
如果有人想测试一下,我在这里提供一些代码:
为服务主体分配权限:
$sp = Get-AzureADServicePrincipal -Filter "DisplayName eq 'automatebro2'" # Get Service Princiap / Automation Account
$GraphApp = Get-AzureADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'" # Microsoft Graph
$Permissions = 'Directory.Read.All', 'Group.Read.All', 'Team.ReadBasic.All', 'TeamSettings.ReadWrite.All'
foreach ($permission in $Permissions) {
$role = $GraphApp.AppRoles | Where-Object {$_.Value -eq $permission}
New-AzureAdServiceAppRoleAssignment `
-ObjectId $sp.ObjectId `
-PrincipalId $sp.ObjectId `
-ResourceId $GraphApp.ObjectId `
-Id $role.Id
}
$skypeandteamsApp = Get-AzureADServicePrincipal -Filter "AppId eq '48ac35b8-9aa8-4d74-927d-1f4a14a0b239'" # Skype and Teams
$Permissions = 'application_access', 'application_access_custom_sba_appliance'
foreach ($permission in $Permissions) {
$role = $skypeandteamsApp.AppRoles | Where-Object {$_.Value -eq $permission}
New-AzureAdServiceAppRoleAssignment `
-ObjectId $sp.ObjectId `
-PrincipalId $sp.ObjectId `
-ResourceId $skypeandteamsApp.ObjectId `
-Id $role.Id
}
$AzureADGraph = Get-AzureADServicePrincipal -Filter "AppId eq '00000002-0000-0000-c000-000000000000'" # Azure AD graph
$Permissions = 'Directory.Read.All'
foreach ($permission in $Permissions) {
$role = $AzureADGraph.AppRoles | Where-Object {$_.Value -eq $permission}
New-AzureAdServiceAppRoleAssignment `
-ObjectId $sp.ObjectId `
-PrincipalId $sp.ObjectId `
-ResourceId $AzureADGraph.ObjectId `
-Id $role.Id
}
MicrosoftTeams 的测试代码:
Connect-MicrosoftTeams -Identity
Grant-csTeamsAppPermissionPolicy -Identity <UPN> -PolicyName <customPolicy>
据我所知,Azure 自动化帐户中提供了基本身份验证。
关于如何实现这一点的任何想法?
【问题讨论】:
-
我们也会从头到尾检查并通知您。
-
是的@HunaidHanfee-MSFT。但是我具体应该看什么?我在那里看不到任何可以解释我的问题的东西。
-
这是通用文档,仅供参考和描述 Grant-CsTeamsAppPermissionPolicy
-
@JoakimE - 请确认您的问题是否已通过上述建议解决或仍在寻求帮助?
标签: powershell microsoft-teams azure-automation