我是否需要将 EntraID (AzureAD) 角色和图形 API 权限分配给自动化帐户托管身份?

问题描述 投票:0回答:1

我编写了一个卸载 powershell 脚本,并将其放入自动化帐户中。我正在从 EntraID 生命周期工作流程触发脚本。我向自动化帐户托管身份授予了适当的图形 API 权限,如本链接所示(fwiw,当使用我的管理员凭据和这些相同的图形 API 范围从本地计算机运行时,脚本按预期工作)。

托管身份权限

我还为自动化帐户分配了 EntraID 角色,例如组管理员。

组管理员角色分配

奇怪的是,这些分配的角色不会显示在托管身份的“角色和管理员”边栏选项卡下。

托管身份 EntraID 角色和管理员

从自动化帐户运行时,我的脚本的某些部分失败。我是否需要 Graph API 权限和 EntraID 角色?或者图API权限是否足够?

脚本有两部分失败:

  1. Reset-MgUserAuthenticationMethodPassword
    。我向托管身份授予了
    UserAuthenticationMethod.ReadWrite.All
    API 权限和
    Authentication Administrator
    EntraID 角色。

  2. Remove-MgGroupMemberByRef
    。我向托管身份授予了
    Group.ReadWrite.All
    GroupMember.ReadWrite.All
    API 权限以及
    Groups Administrator
    EntraID 角色。

是否同时需要 Graph API 权限和 EntraID 角色?我可能缺少哪些权限和/或角色??

感谢您的宝贵时间!

microsoft-graph-api azure-automation microsoft-entra-id
1个回答
0
投票

最初,我创建了一个自动化帐户,并向托管身份服务主体授予了相同的权限,如下所示:

enter image description here

现在,我将 “身份验证管理员” 角色分配给上述服务主体,如下所示:

enter image description here

当我运行下面的 PowerShell 脚本以从自动化帐户重置用户密码时,我收到错误,如下所示:

# Connect to Microsoft Graph
Connect-MgGraph -Identity

Import-Module Microsoft.Graph.Users.Actions

$params = @{
    newPassword = "xxxxxxxx"
}

$userId = "userId"
$authenticationMethodId = "methodId"

Reset-MgUserAuthenticationMethodPassword -UserId $userId -AuthenticationMethodId $authenticationMethodId -BodyParameter $params

回复:

enter image description here

发生错误是因为此重置密码的 Graph API 操作不支持且具有“应用程序”类型的权限。您可以查看此MS Doc

在这种情况下,必须为调用服务主体分配更高特权管理员角色,例如特权身份验证管理员全局管理员

如果错误仍然存在,请使用 Update user API 调用通过更新

passwordProfile
属性来重置用户密码,如下所示:

# Connect to Microsoft Graph
Connect-MgGraph -Identity

Import-Module Microsoft.Graph.Users

$params = @{
    passwordProfile = @{
        forceChangePasswordNextSignIn = $false
        password = "xxxxxxx"
    }
}

$userId = "userId"

Update-MgUser -UserId $userId -BodyParameter $params

要从组中删除成员,请使用以下 PowerShell 命令通过获取具有目录对象 ID 的成员:

Import-Module Microsoft.Graph.Groups

Remove-MgGroupMemberDirectoryObjectByRef -GroupId $groupId -DirectoryObjectId $directoryObjectId

要了解该特定操作需要哪些权限,您可以查看 MS Graph API 文档,因为 MS Graph PowerShell SDK 命令在后端调用 API。

参考资料:

Microsoft Entra 内置角色 - Microsoft Entra ID

删除成员 - Microsoft Graph v1.0

© www.soinside.com 2019 - 2024. All rights reserved.