当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何连接到 Microsoft Graph PowerShell

作者:精品下载站 日期:2024-12-14 03:33:44 浏览:11 分类:玩电脑

如何连接到 Microsoft Graph PowerShell


有多种方法可以连接到 Microsoft Graph PowerShell 来管理 Microsoft 365 和 Azure 租户。哪一种方法适合您取决于您想要什么。一个很好的例子是连接到 Microsoft Graph PowerShell 以自动执行 Microsoft Graph PowerShell 脚本,无需用户交互。在本文中,您将了解如何使用三种不同的方法连接到 Microsoft Graph PowerShell。

先决条件

您需要在系统上安装 Microsoft Graph PowerShell 模块。

以管理员身份启动 Windows PowerShell 并运行以下命令。

Install-Module Microsoft.Graph -Force
Install-Module Microsoft.Graph.Beta -AllowClobber -Force

重要提示:始终安装 Microsoft Graph PowerShellMicrosoft Graph Beta PowerShell 模块。这是因为某些 cmdlet 在最终版本中尚不可用,并且无法运行。在运行 cmdlet 或脚本之前将两个模块更新到最新版本,以防止出现错误和不正确的结果。

方法 1 - 如何通过用户交互连接到 Microsoft Graph

第一种方法是您大部分时间都会使用的方法,因为您想要使用您的帐户连接到 Microsoft Graph 并使用命令。

Connect-MgGraph -Scopes "User.Read.All"

验证您的凭据,然后您将返回到 PowerShell 窗口。

方法 2 - 如何使用基于证书的身份验证 CBA 连接到 Microsoft Graph

第二种方法是在 Azure 中注册具有权限的应用程序。让我们完成以下步骤,并为无人值守脚本设置基于 Microsoft Graph 证书的身份验证。

1. 在Azure中注册应用程序

要在 Azure AD 中注册应用程序,请执行以下步骤:

  1. 登录 Microsoft Entra 管理中心
  2. 展开Azure Active Directory
  3. 单击应用程序 > 应用程序注册
  4. 选择新注册

[玩转系统] 如何连接到 Microsoft Graph PowerShell

  1. 填写名称MSGraph-Automation
  2. 选择任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户和个人 Microsoft 帐户
  3. 点击注册

[玩转系统] 如何连接到 Microsoft Graph PowerShell

  1. 将出现 MSGraph-Automation 应用程序概述
  2. 复制应用程序(客户端 ID)目录(租户)ID 并将其粘贴到记事本中,因为稍后连接到 Microsoft Graph 时需要它

[玩转系统] 如何连接到 Microsoft Graph PowerShell

2.配置Azure应用程序API权限

您需要按照以下步骤向您创建的 MSGraph-Automation 应用程序添加 API 权限:

  1. 单击API权限>添加权限

[玩转系统] 如何连接到 Microsoft Graph PowerShell

  1. 选择Microsoft API > Microsoft Graph

[玩转系统] 如何连接到 Microsoft Graph PowerShell

  1. 选择应用程序权限
  2. 搜索user.read.all
  3. 展开用户并选择User.Read.All
  4. 点击添加权限

[玩转系统] 如何连接到 Microsoft Graph PowerShell

  1. 点击授予管理员同意
  2. 单击

[玩转系统] 如何连接到 Microsoft Graph PowerShell

  1. 状态显示绿色复选标记

[玩转系统] 如何连接到 Microsoft Graph PowerShell

现在应用程序已注册并设置了 API 权限,我们可以配置两种身份验证方法;证书或客户端秘密。

3.生成自签名证书

要生成自签名证书,请使用 Windows PowerShell 登录到任何 Windows Server 或桌面。最好在要运行无人值守 PowerShell 脚本的计算机上生成证书。

当您将自签名证书上传到 Azure 中的应用程序时,以及如果您想在其他系统上使用该证书,您需要在后面的步骤中使用自签名证书。

注意:默认情况下,自签名证书的有效期为一年。

在本例中,我们为自签名证书添加了 5 年,因此我们不必每年更新它。

$mycert = New-SelfSignedCertificate -DnsName "exoip.com" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(5) -KeySpec KeyExchange -FriendlyName "MSGraph Automation"

确认证书并复制ThumbPrint并将其粘贴到记事本中。稍后连接到 Microsoft Graph 时将需要它。

$mycert | Select-Object -Property Subject,Thumbprint,NotBefore,NotAfter

这就是输出的样子。

Subject      Thumbprint                               NotBefore           NotAfter           
-------      ----------                               ---------           --------           
CN=exoip.com 384010504F6B495B6D53B1C55DC6C1A7273081AC 7/7/2023 6:14:36 PM 7/7/2028 6:24:36 PM

将证书导出到.cer 文件

.cer 文件上传到 Azure 应用程序时,您将需要该文件(您将在后续步骤中创建该文件)。

$mycert | Export-Certificate -FilePath "C:\temp\MSGraphAutomationCert.cer"

出现输出。

    Directory: C:\temp


Mode                LastWriteTime         Length Name                     
----                -------------         ------ ----                     
-a----         7/7/2023   6:25 PM            796 MSGraphAutomationCert.cer

将证书导出到.pfx 文件

当使用另一台计算机通过基于证书的身份验证进行连接时,您将需要该.pfx 文件。复制或发送.pfx 文件并将其安装在其他计算机上。

$mycert | Export-PfxCertificate -FilePath "C:\temp\MSGraphAutomationCert.pfx" -Password $(ConvertTo-SecureString -String "P@ssw0Rd1234" -AsPlainText -Force)

出现输出。

    Directory: C:\temp


Mode                LastWriteTime         Length Name                     
----                -------------         ------ ----                     
-a----         7/7/2023   6:26 PM           2717 MSGraphAutomationCert.pfx

4. 将证书上传到应用程序

您需要上传您在上一步中创建的自签名证书:

  1. 单击证书和机密
  2. 单击证书 > 上传证书
  3. 单击浏览图标并选择C:\temp中的自签名MSGraphAutomationCert.cer文件
  4. 添加描述MS Graph Automation Cert
  5. 点击添加

[玩转系统] 如何连接到 Microsoft Graph PowerShell

  1. 证书出现在列表中

注意:确认其具有与您在上一步中导出的证书指纹相同的证书指纹。

[玩转系统] 如何连接到 Microsoft Graph PowerShell

5. 使用基于证书的身份验证连接到 Microsoft Graph

启动 Windows PowerShell ISE 或 Visual Studio Code 并填写以下三个变量以使用基于证书的身份验证连接到 Microsoft Graph PowerShell:

  1. $客户端ID
  2. $租户ID
  3. $CertificateThumbPrint
# Configuration
$ClientId = "0a613e88-a189-4eac-b8c3-055196fd04d6"
$TenantId = "eb403171-a4ec-4d98-a08f-1876318c9deb"
$CertificateThumbprint = "384010504F6B495B6D53B1C55DC6C1A7273081AC"

# Connect to Microsoft Graph with CBA
Connect-MgGraph -ClientId $ClientId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint

现在您已连接到 Microsoft Graph PowerShell,请运行 Get-MgUser cmdlet 以检索用户。

Get-MgUser

方法 3 - 如何使用客户端密钥连接到 Microsoft Graph

第三种方法是在 Azure 中注册具有权限的应用程序。让我们完成以下步骤并为无人值守脚本设置 Microsoft Graph 客户端密钥。

1. 在Azure中注册应用程序

如果您没有执行上述步骤,请在 Azure 中注册应用程序。

2.配置Azure应用程序API权限

如果您没有执行此操作,请执行上述步骤来配置 Azure 应用程序 API 权限。

3. 添加客户端密码

您需要添加应用程序在请求令牌时用来证明其身份的客户端密钥。

  1. 单击证书和机密
  2. 单击客户端密钥 > 新客户端密钥
  3. 为其提供描述MS Graph Automation Secret
  4. 选择过期日期730 天(24 个月)
  5. 点击添加

[玩转系统] 如何连接到 Microsoft Graph PowerShell

  1. 复制客户端密钥值并将其粘贴到记事本中,因为在下一步连接到 Microsoft Graph 时将需要它

[玩转系统] 如何连接到 Microsoft Graph PowerShell

4. 使用客户端密钥连接到 Microsoft Graph

启动 Windows PowerShell ISE 或 Visual Studio Code 并填写以下三个变量以使用客户端密钥连接到 Microsoft Graph PowerShell:

  1. $客户端ID
  2. $租户ID
  3. $ClientSecret
# Configuration
$ClientId = "0a613e88-a189-4eac-b8c3-055196fd04d6"
$TenantId = "eb403171-a4ec-4d98-a08f-1876318c9deb"
$ClientSecret = "Kos8Q~nVLcjmmyGSY68qDg4zbdF8f51L2EM50ac5"

# Convert the client secret to a secure string
$ClientSecretPass = ConvertTo-SecureString -String $ClientSecret -AsPlainText -Force

# Create a credential object using the client ID and secure string
$ClientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ClientId, $ClientSecretPass

# Connect to Microsoft Graph with Client Secret
Connect-MgGraph -TenantId $tenantId -ClientSecretCredential $ClientSecretCredential

现在您已连接到 Microsoft Graph PowerShell,请运行 Get-MgUser cmdlet 以检索用户。

Get-MgUser

就是这样!

了解更多:在 Microsoft Entra ID 中更新客户端密钥 »

结论

您学习了如何使用三种方法连接到 Microsoft Graph PowerShell。完成分步指南后,您可以通过 Microsoft Graph PowerShell 通过用户交互(方法 1)或无需用户交互的无人值守脚本(方法 2/3)进行身份验证。所有这些方法都非常适合使用。

您喜欢这篇文章吗?您可能还喜欢使用 PowerShell 从 CSV 创建 Microsoft Entra ID 用户。不要忘记关注我们并分享这篇文章。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯