【问题标题】:Using System Managed Identity in Azure Automation Account with PowerShell module MicrosoftTeams将 Azure 自动化帐户中的系统托管标识与 PowerShell 模块一起使用 MicrosoftTeams
【发布时间】:2023-03-25 06:31:01
【问题描述】:

在带有 PowerShell 模块 MicrosoftTeams 的 Azure 自动化帐户中使用系统托管标识。

Connect-MicrosoftTeams 支持使用带有-Identity 开关的系统管理身份登录。

我不确定需要为服务主体分配哪些权限才能使用 MicrosoftTeams PowerShell 模块 cmdlet。

我想使用 PowerShell 和系统托管标识分配 TeamsAppPermissionPolicy 和 TeamsAppSetupPolicy。 (使用我的个人云帐户当然效果很好。使用团队管理员角色,即不使用托管身份)

当前分配的权限如下:

每当执行命令Get-Team 时,我都能列出所有团队。

当我执行 Grant-csTeamsAppSetupPolicyGrant-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


【解决方案1】:

-Cs cmdlet 当前不支持托管服务标识。

Managed Identities Operations

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 2020-08-29
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2021-08-08
    • 2022-01-11
    • 2021-10-17
    相关资源
    最近更新 更多