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

[玩转系统] 使用 Get-MSALtoken 连接到 MS Graph

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

使用 Get-MSALtoken 连接到 MS Graph


连接到 Microsoft Graph 的方式有很多种。一种选择是使用 Get-MSALToken cmdlet,它允许您使用 MSAL 身份验证方法以交互方式或无人值守方式从 Microsoft Entra 获取访问令牌。

要使用 MSAL,我们需要在 Microsoft Entra 中注册一个应用程序,并设置我们想要授予连接的所需权限。

在本文中,我将解释如何配置所需的 Entra 应用程序以及如何使用 MSAL PowerShell 客户端连接到 Microsoft Graph。

MSAL PowerShell 客户端

MSAL.PS PowerShell 模块允许您从 Microsoft Entra 获取访问令牌,例如可用于连接到 Microsoft Graph。 Microsoft 身份验证库 (MSAL) 取代了旧版 ADAL 库。

MSAL.PS 模块可在所有 PowerShell 平台中使用,包括 Azure Runbooks,这使得它非常适合在无人值守的情况下运行脚本。

要使用 MSAL 获取访问令牌,我们可以交互式登录、使用客户端密钥或证书。但对于所有 3 种方法,我们首先需要在 Microsoft Entra 中创建一个应用程序。

确保已安装 MSAL.PS PowerShell 模块:

Install-Module -Name MSAL.PS -Scope CurrentUser

创建 Entra 应用程序

第一步是在 Microsoft Entra 中注册网络应用程序。该应用程序允许我们配置要为连接提供的 Microsoft Graph 权限。

  1. 打开 Microsoft Entra 管理中心
  2. 展开应用程序并单击应用程序注册
  3. 选择新注册

[玩转系统] 使用 Get-MSALtoken 连接到 MS Graph

  1. 输入应用程序的名称
  2. 选择仅此组织目录中的帐户
  3. 点击注册(我们不需要输入重定向 URI)

配置权限

创建应用程序后,我们现在需要配置脚本所需的 Microsoft Graph 权限。权限与范围相同,因此如果您想知道要设置哪个权限,则可以使用相同的方法查找范围。

  1. 打开API权限
  2. 点击添加权限
  3. 选择Microsoft Graph

[玩转系统] 使用 Get-MSALtoken 连接到 MS Graph

  1. 选择应用程序权限
  2. 选择您要添加的权限
  3. 点击的高级管理员同意

互动连接

要获取访问令牌,我们需要知道应用程序(客户端)ID 和您的租户 ID。两者都可以在我们刚刚在 Microsoft Entra 中创建的应用程序的概述中找到。

  • 打开Microsoft Entra
  • 转到身份> 应用程序> 应用程序注册
  • 打开您新创建的应用程序
  • 记下应用程序(客户端)ID目录(租户)ID

[玩转系统] 使用 Get-MSALtoken 连接到 MS Graph

我们现在可以使用以下 PowerShell 命令获取访问令牌。请注意,我使用了哈希表和展开来输入连接详细信息,这使其更易于阅读:

$details = @{
    'TenantId'     = '11e55098-1234-5678-9101-ascasdhwlwde' # Directory (tenant) ID
    'ClientId'     = 'e6591897-c0c3-44d9-b9a9-afb75ac690ea' # Application (client) ID
    'Interactive'  = $true
}

$token = Get-MsalToken @details

交互式方法将打开一个浏览器选项卡,允许您使用凭据登录。完成后,我们可以使用访问令牌连接到 Microsoft Graph:

Connect-MgGraph -AccessToken ($token.AccessToken |ConvertTo-SecureString -AsPlainText -Force)

无人值守连接

MSAL.PS 模块的优势在于能够仅使用客户端 ID 和密码进行无人值守登录。为此,我们首先需要创建一个新的客户端密钥。

  1. 打开在 Microsoft Entra 中新创建的应用程序
  2. 转到证书和秘密
  3. 单击客户端密钥
  4. 新客户秘密
  5. 输入说明到期日期,然后点击添加
  6. 复制秘密值

[玩转系统] 使用 Get-MSALtoken 连接到 MS Graph

我们还需要客户 ID 和租户 ID,您可以在应用程序的概述页面上找到它们。

收集到所有信息后,我们可以使用 Get-MsalToken cmdlet 获取访问令牌,并使用该令牌连接到 Microsoft Graph:

$details = @{
    'TenantId'     = '11e55098-1234-5678-9101-ascasdhwlwde' # Directory (tenant) ID
    'ClientId'     = 'e6591897-c0c3-44d9-b9a9-afb75ac690ea' # Application (client) ID
    'ClientSecret' = '5LN8Q~RoWIpTktjJXdlotv.JzB2Ks35U~ORcQbuG' | ConvertTo-SecureString -AsPlainText -Force
}

$token = Get-MsalToken @details

Connect-MgGraph -AccessToken ($token.AccessToken |ConvertTo-SecureString -AsPlainText -Force)

总结

Get-MSALToken cmdlet 允许您轻松地从 Microsoft Entra 获取访问令牌。如果您想使用令牌连接到 Microsoft Graph,请记住,您实际上并不需要为此使用 MSAL.PS 模块。

您也可以单独使用 Microsoft Graph PowerShell 模块实现相同的目的。在本文中阅读您需要了解的所有内容。

希望您喜欢这篇文章,如果您有任何疑问,请在下面发表评论。

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

取消回复欢迎 发表评论:

关灯