当前位置: 首页 > news >正文

Microsoft Graph PowerShell v2 发布公开预览版 - 新的身份验证方法,支持解除阻塞场景,脚本迁移工具

本篇接前一篇继续介绍,有些事情耽搁了所以发晚了。

为更多场景提供新的身份验证方法

1. 托管标识

在编写自动化脚本时,一个常见的挑战是管理用于保护服务之间通信的秘密、凭据、证书和密钥。允许模块获取受 Azure Active Directory 保护的 Azure 资源的访问令牌,从而消除管理凭据的需要。该身份由 Azure 平台管理,不需要您提供或旋转任何秘密。有关更多详细信息,请参阅 Azure 资源中的托管标识。

a. 系统分配的托管标识
在服务实例上使用自动管理的标识。标识与服务实例的生命周期相关联。

Connect-MgGraph -Identity

b. 用户分配的托管标识
将用户创建的托管标识作为独立的Azure资源使用。

Connect-MgGraph -Identity -ClientId "User_Assigned_Managed_identity_Client_Id"

2. 客户端秘密凭证

如果您需要在后台进行交互,而无需用户登录,那么这种类型的授权可以帮助到你。通过向 Connect-MgGraph 添加 -ClientSecretCredential 参数,增加对客户端秘密凭证的支持。有关如何获取或创建凭证,请参阅 Get-Credential。

$ClientCredential = Get-Credential -Username "Client_Id"
# Or create a credential object that is identical to the object that Get-Credential returns without prompting the user. This method requires a plain text password, which might violate the security standards in some enterprises. l
# $ClientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPassword
# Enter client_secret in the password prompt.
Connect-MgGraph -TenantId "Tenant_Id" -ClientSecretCredential $ClientCredential

3. 基于环境变量的认证

环境变量存储参数键和值,然后作为脚本的输入,并有助于在与他人共享它们时不泄漏信息。
Connect-MgGraph 中使用 -EnvironmentVariable 来支持基于环境变量的认证。需要注意的是,如果使用用户名和密码进行身份验证,将会抛出一个错误,因为设计不支持这一点,并且客户端秘密优先于证书,也就是说,如果客户端秘密值和证书值都存在,则将使用客户端秘密。查看Azure 身份环境变量以获取更多详细信息。

# Add environment variables to be used by Connect-MgGraph.
$Env:AZURE_CLIENT_ID = "application id of the client app"
$Env:AZURE_TENANT_ID = "Id of your tenant"
$Env:AZURE_CLIENT_SECRET = "secret of the client app"

# Tell Connect-MgGraph to use your environment variables.
Connect-MgGraph –EnvironmentVariable

4. 证书凭证

如果你正在使用 Microsoft Graph PowerShell SDK v2,那么仅在当前用户证书存储区中拥有证书不再是一个限制;增加了在当前用户和本地机器证书存储中查找证书的支持。如果两个地方都有两个相同的证书,则当前用户存储区将优先给予证书。

Connect-MgGraph -ClientId "Client_Id" -Tenant "Tenant" -CertificateThumbprint "Cert_Thumbprint"

连同所有新的身份验证方式,v2中使用的认证令牌凭证不再支持 -ForceRefresh。客户应该使用 Disconnect-MgGraph 来退出当前上下文,然后调用 Connect-MgGraph 来获得一个新的访问令牌。此外,为了更加安全,微软将 -AccessToken 的类型从 String 更改为 SecureString

更好的性能

HTTP/2 协议通过增加对多路复用、报头压缩和服务器推送的支持,专注于提高性能和感知延迟。当 HTTP/2 可用时,用户将受益于性能的提高,当 API 不支持 HTTP/2 时,SDK将优雅地退回到 HTTP/1.1

使用新的成功范围代码支持解除阻塞场景

API 返回的状态代码与 API 中记录的状态代码不同,这种情况将不再影响用户。通过成功状态码范围(2xx)支持,允许将所有2xx响应视为成功的请求,从而解除了新场景的阻塞,可以在脚本中进一步使用响应体时从响应体中获取信息。

Invoke-MgInstantiateApplicationTemplate -ApplicationTemplateId $applicationTemplateId -BodyParameter $params

输出:

DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
Created

Headers:
Cache-Control                 : no-cache
Transfer-Encoding             : chunked
Location                      : https://graph.microsoft.com/
Vary                          : Accept-Encoding
Strict-Transport-Security     : max-age=31536000
request-id                    : request-id
client-request-id             : client-request-id
x-ms-ags-diagnostic           : {"ServerInfo":{"DataCenter":"Brazil South","Slice":"E","Ring":"3","ScaleUnit":"000","RoleInstance":"CP1PEPF00002F02"}}
OData-Version                 : 4.0
Date                          : Fri, 16 Dec 2022 19:22:27 GMT

Body:
{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.applicationServicePrincipal",
  "application": {
    "id": "id",
    "appId": "app-id",
    "applicationTemplateId": "application-template-id",
    "createdDateTime": "2022-12-16T19:22:26Z",
    "deletedDateTime": null,
    "displayName": "Azure AD SAML Toolkit",
    "description": null,
    "groupMembershipClaims": null,
    "identifierUris": [],
    "isFallbackPublicClient": false,
  },
  "servicePrincipal": {
    "id": "id",
    "deletedDateTime": null,
    "accountEnabled": true,
    "appId": "app-id",
    "applicationTemplateId": "application-template-id",
    "appDisplayName": "Azure AD SAML Toolkit",
    "alternativeNames": [],
    "appOwnerOrganizationId": "app-owner-organization-id",
    "displayName": "Azure AD SAML Toolkit",
    "servicePrincipalNames": [
      ""
    ],
    "servicePrincipalType": "Application",
    "tags": [
      "WindowsAzureActiveDirectoryIntegratedApp"
    ],
    "tokenEncryptionKeyId": null,
    "samlSingleSignOnSettings": null,
    "addIns": [],
    }
  }
}

注意:为了可读性,这里显示的响应对象被缩短了

脚本迁移工具

微软将提供一个迁移工具来帮助客户将他们的脚本从使用 Microsoft Graph PowerShell SDK v1 迁移到 v2。该工具将在 v2 版本GA时可用。客户可以在 GitHub 上联系微软,并发送任何愿意分享的脚本来帮助微软测试和验证工具。

相关文章:

  • wordpress下载地址插件/quark搜索引擎入口
  • wordpress公式 插件/微信小程序怎么做店铺
  • 17网站一起做网/优就业seo怎么样
  • 惠安网站建设价格/百度引流平台
  • 金融网站建设方案ppt模板/怎样优化标题关键词
  • 商丘做网站的电话/网络营销的营销策略
  • Minecraft 1.19.2 Fabric模组开发 04.动画效果方块
  • C 语言目标文件
  • 第四十六章 使用 ^SystemPerformance 监视性能 - 生成 ^SystemPerformance 性能报告
  • 微信小程序textarea的placeholder的行高怎么修改
  • 修改配置文件的定时任务
  • Python实战项目1——自动获取小说工具
  • javaweb10 JSP语法、JSTL、EL表达式、JSP标签、九大内置对象
  • 音视频技术开发周刊 | 279
  • ❤️自动化-文件路径管理-详细教程附代码⚡
  • R-P-Faster R-CNN day65 读论文:高分辨率遥感影像综合地理空间目标检测框架
  • Android 深入系统完全讲解(19)
  • Docker部署jeecgboot微服务使用记录