从 Azure Active Directory Graph 迁移到 Microsoft Graph

Posted

技术标签:

【中文标题】从 Azure Active Directory Graph 迁移到 Microsoft Graph【英文标题】:Migration from Azure Active Directory Graph to Microsoft Graph 【发布时间】:2022-01-09 16:14:54 【问题描述】:

我有一个用于监视服务主体到期日期的 powershell 脚本。该脚本正在由 Azure 自动化执行(Runbook + 以帐户身份运行)。“以帐户身份运行”需要 Application.Read.Azure Active Directory Graph 中的所有权限如下图所示:

问题是 Microsoft 停用了 AAD Graph,它不再作为选项可用,如下所示:

这对我来说意味着我不能再运行脚本,尤其是因为缺少权限我不能运行这些 cmdlet

get-azad应用程序 获取 azadcredentials

我得到错误:

30 |  get-azadserviceprincipal
 |  ~~~~~~~~~~~~~~~~~~~~~~~~
 | Insufficient privileges to complete the operation

我在 Microsoft Graph 中授予了相同的权限(见下文),但似乎不起作用:

据微软在 12 月开始迁移 https://docs.microsoft.com/en-us/powershell/azure/azps-msgraph-migration-changes?view=azps-6.6.0

这是否意味着在使用 Graph API 中的给定权限迁移后,使用的 cmdlet 将像以前一样工作?你们(powershell 脚本编写者)是否因从 AAD Graph 迁移到 Microsoft Graph 有类似的问题?

【问题讨论】:

不幸的是,即使使用 directory.readwrite.all 也没有成功 我可以知道在帐户运行中必须有 2 种类型 1 作为帐户运行,其他将是经典的。你用的是哪一个? Azure Run As Account,也不是经典的 让我在我的环境中测试一下,然后回到这里 【参考方案1】:

我在我的环境中测试了相同的错误,即使添加了所需的 API 权限,错误也类似于下面的错误:

至于解决方案,根据要求,您还必须在 PIM 中为 AzureAD 分配 Roles And Administrators

第 1 步:您可以转到 Azure Active Directory 概述页面 >> 角色和管理员 刀片并单击 Global Reader,它将提供对 Azure Active Directory 中所有内容的读取访问权限。

第 2 步:Global Reader 页面 >> 活动分配 Blade >> 点击添加作业

第 3 步: 在添加分配页面 >> 选择成员 >> 搜索自动化帐户运行为帐户名 >> 选择 >> 下一步 >> 添加说明 >> 分配

步骤 4: 成功完成上述操作后,您可以在自动化运行手册中运行以下内容并获得所需的输出。

$Conn = Get-AutomationConnection -Name AzureRunAsConnection
    $account = Connect-AzAccount -ServicePrincipal `
               -TenantId $Conn.TenantID  `
               -ApplicationId $Conn.ApplicationID  `
               -CertificateThumbprint $Conn.CertificateThumbprint
Get-AzADApplication

【讨论】:

这似乎是解决方案,运行帐户也需要一个 Azure AD 角色。但是这样我就可以访问整个租户(读者权限),所以我可以阅读所有 AZSubsriptions 和这违反了 IT 合规性。他们创建了一个子组,其中包含我(作为 DEVOPS 团队)应该访问和检查的订阅。有什么方法可以仅将“全局读者”权限分配给该子组而不是所有租户?跨度> @olti ,全局阅读器不适用于订阅,它对 azure 广告的读取权限,即使他们将您限制为少数订阅,但所有订阅的租户都是相同的。但仍然让我检查它是否可以仅限于组。

以上是关于从 Azure Active Directory Graph 迁移到 Microsoft Graph的主要内容,如果未能解决你的问题,请参考以下文章

从 Azure Active Directory 验证 JWT

从 Powershell 获取 Azure Active Directory 访问令牌

从 Azure Active Directory Graph 迁移到 Microsoft Graph

从 Azure Active Directory 获取个人资料图片

您如何从 Azure Active Directory 中获取搭建的 Weather Forecast Api 将接受的访问令牌?

访问Azure Active Directory用户和角色