[玩转系统] 如何将托管身份与 Microsoft Graph PowerShell 结合使用
作者:精品下载站 日期:2024-12-14 06:50:29 浏览:16 分类:玩电脑
如何将托管身份与 Microsoft Graph PowerShell 结合使用
托管标识提供了一种安全的方式,应用程序可以通过这种方式访问 Azure 中的资源,而无需管理员管理其他密码或机密。这意味着身份验证可以顺利进行,而无需人工干预。
幸运的是,对于那些在 PowerShell 中编写代码来管理租户或报告租户的人来说,Microsoft Graph PowerShell v2 支持将托管标识与 Azure 自动化结合使用。
在本教程中,我将向您展示如何在 Azure 中创建托管标识并为其分配权限,然后在 Microsoft Graph PowerShell 脚本中使用该托管标识。
什么是托管身份?
托管标识是 Azure 中的资源,可以自动请求和接收 Azure AD 访问令牌以对资源进行身份验证。对于编程/自动方案,租户管理员无需管理密码、密钥或机密,因为身份验证完全由 Azure 管理且仅在 Azure 内部进行,从而使其变得简单且更安全。
实际上,托管标识是 Azure AD 中的服务主体(或应用程序),您可以向其分配特定的权限或角色以完成创建它们要执行的任务。
您可以通过选择以下选项来查看 Azure Active Directory 中的托管身份:
应用程序 > 所有应用程序,然后将应用程序类型过滤器更改为托管身份。
系统分配与用户分配的托管身份
Azure 中有两种类型的托管标识,使你能够获取用于访问资源的 Azure AD 令牌。这些是系统分配的和用户分配的托管身份。
尽管它们都有相同的目的,但它们的工作方式略有不同。系统分配的托管标识与特定资源绑定,并且仅提供对该资源的特定访问权限,而用户分配的托管标识是独立的,可以分配给单个或多个不同的资源。
在使用每种类型的托管身份之间进行选择取决于部署它的场景以及您管理基础设施的方式。
如果您需要将 Graph API 权限应用于多个身份,系统分配的托管身份通常可能意味着更多的管理,如果权限要求相同,可以使用单个用户分配的托管身份来简化。此外,如果您分配角色而不是 Graph API 权限,则每个系统分配的托管身份也可以添加到分配了角色的安全组中,从而减少管理。
系统分配的托管标识的生命周期也与资源相关联,因此它在创建资源时创建,在删除资源时删除。虽然在某些情况下这可能有助于维护安全性并保持环境整洁,但在创建多个资源时可能会变得很麻烦,特别是在权限需要由不同部门管理或批准的情况下。
下图显示了使用系统分配或用户分配的托管标识时的权限分配流程。一般来说,如果您有一个需要运行的具有特定权限的作业,系统分配的管理身份将是更好的选择,任何其他情况都需要额外考虑。
如何创建用户分配的托管身份
由于用户分配的托管标识独立于它们所服务的资源,因此必须首先使用 Azure 门户或 PowerShell 手动创建它们,然后必须分配所需的权限。请按照以下步骤创建和配置用户分配的托管身份。
使用 Azure 门户
1.登录https://portal.azure.com/
2. 搜索托管身份并打开服务
3. 单击创建启动托管身份创建向导
4. 填写屏幕上的信息区域,然后单击查看和创建 > 创建
使用PowerShell
虽然我喜欢使用 Microsoft Graph 完成所有操作,但托管身份是 Azure 资源,无法直接在 Azure AD 中创建,而 Microsoft Graph 可以让您管理身份。要使用 PowerShell 创建托管标识,必须使用 Azure (Az) PowerShell 模块,如下所示:
1. 安装 Az PowerShell 模块。
Install-Module Az -Scope CurrentUser -AllowPrerelease -Force
2. 使用 Connect-AzAccount 连接到 Azure。
Connect-AzAccount
3. 在创建托管标识之前,必须首先创建一个包含该标识的资源组。
New-AzResourceGroup -Name RG-UKSAA-MgPowerShell -Location "UK South"
4. 现在创建一个新的托管身份并定义新资源组的名称。
New-AzUserAssignedIdentity -ResourceGroupName RG-UKSAA-MgPowerShell -Name MI-AA-MgPowerShell1 -location UKSouth
将 Graph API 权限分配给托管身份
为了为我们的托管身份提供必要(且最少)的权限来执行最终脚本中规定的任务,我们需要通过 PowerShell 分配 Graph API 权限。
遗憾的是,尚不支持通过 Microsoft Entra 门户将 Graph API 权限分配给托管身份,因此我将向您展示如何使用 Microsoft Graph PowerShell 进行此操作。
以下脚本将连接到 Microsoft Graph 并将定义的权限分配给您的托管标识。确保按照下面脚本中的建议修改变量。
# Connect to Microsoft Graph with least required permission scope
Connect-MgGraph -Scopes Application.Read.All, AppRoleAssignment.ReadWrite.All
### Define these variables here first ##
$ManagedIdentityName = "OCN-AA-MgPowerShell"
$permissions = "Mail.send", "AuditLog.Read.All", "Application.Read.All"
# Get service principal and roles
$getPerms = (Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'").approles | Where {$_.Value -in $permissions}
$ManagedIdentity = (Get-MgServicePrincipal -Filter "DisplayName eq '$ManagedIdentityName'")
$GraphID = (Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'").id
# Assign roles
foreach ($perm in $getPerms){
New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $ManagedIdentity.Id `
-PrincipalId $ManagedIdentity.Id -ResourceId $GraphID -AppRoleId $perm.id
}
分配权限后,Microsoft Entra 门户中托管身份的权限选项卡将如下所示:
将系统分配的托管标识与 Azure 自动化帐户结合使用
系统分配的托管标识可以直接从 Azure 自动化帐户或其应用的资源创建。请按照以下步骤创建托管身份。
1. 首先打开您的自动化帐户,然后从帐户设置区域选择身份。
2. 将系统分配的托管身份设置为开启,然后单击保存。
3. 现在,您将看到应用程序列表中列出的托管身份,如本教程顶部所示。
将用户分配的托管标识与 Azure 自动化帐户结合使用
用户分配的托管身份必须手动分配给他们将进行身份验证的资源。请按照以下步骤将托管身份分配给您的自动化帐户。
1. 首先打开您的自动化帐户并从帐户设置区域选择身份。
2. 选择“用户分配”选项卡,然后单击添加。
3. 从列表中选择您的订阅和托管身份,然后单击添加。
如何将 Connect-MgGraph -Identity 与 Microsoft Graph PowerShell 结合使用
现在,您已经拥有分配了托管身份的自动化帐户,但不包括正确的权限,您必须在 Microsoft Graph 身份验证命令中包含 -Identity 参数才能使用它。
将 Connect-MgGraph 与系统分配的托管身份结合使用
在与系统分配的托管身份连接时,只需单独定义 -Identity 参数,无需进一步的身份验证命令。
Connect-MgGraph -Identity
将 Connect-MgGraph 与用户分配的托管身份结合使用
要使用用户分配的托管身份,需要定义 -Identity 和 -ClientId 参数。您还必须包含用户分配的托管标识(服务主体)的对象 ID,以便身份验证命令知道要使用哪个托管标识。
Connect-MgGraph -Identity -ClientId %Object ID of Managed Identity%
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag