Connect-Entra

使用经过身份验证的帐户连接到Microsoft Entra ID。

语法

UserParameterSet (默认值)

Connect-Entra
[[-Scopes]
    [[-Scopes] <String[]>]
    [[-ClientId] <String>]
    [-TenantId <String>]
    [-ContextScope <ContextScope>]
    [-Environment <String>]
    [-UseDeviceCode]
    [-ClientTimeout <Double>]
    [-NoWelcome]
    [<CommonParameters>]

AppCertificateParameterSet

Connect-Entra
[-ClientId]
    [-ClientId] <String>
    [[-CertificateSubjectName] <String>]
    [[-CertificateThumbprint] <String>]
    [-SendCertificateChain <Boolean>]
    [-Certificate <X509Certificate2>]
    [-TenantId <String>]
    [-ContextScope <ContextScope>]
    [-Environment <String>]
    [-ClientTimeout <Double>]
    [-NoWelcome]
    [<CommonParameters>]

IdentityParameterSet

Connect-Entra
[[-ClientId]
    [[-ClientId] <String>]
    [-ContextScope <ContextScope>]
    [-Environment <String>]
    [-ClientTimeout <Double>]
    [-Identity]
    [-NoWelcome]
    [<CommonParameters>]

AppSecretCredentialParameterSet

Connect-Entra
[-ClientSecretCredential
    [-ClientSecretCredential <PSCredential>]
    [-TenantId <String>]
    [-ContextScope <ContextScope>]
    [-Environment <String>]
    [-ClientTimeout <Double>]
    [-NoWelcome]
    [<CommonParameters>]

AccessTokenParameterSet

Connect-Entra
[-AccessToken]
    [-AccessToken] <SecureString>
    [-Environment <String>]
    [-ClientTimeout <Double>]
    [-NoWelcome]
    [<CommonParameters>]

EnvironmentVariableParameterSet

Connect-Entra
[-ContextScope
    [-ContextScope <ContextScope>]
    [-Environment <String>]
    [-ClientTimeout <Double>]
    [-EnvironmentVariable]
    [-NoWelcome]
    [<CommonParameters>]

说明

Connect-Entra cmdlet 使用经过身份验证的帐户连接到Microsoft Entra ID。

根据用例支持多种身份验证方案,例如委派(交互式)和仅限应用(非交互式)。

Connect-EntraConnect-MgGraph 的别名。

示例

示例 1:委派访问权限:将 PowerShell 会话连接到租户

Connect-Entra

此示例演示如何使用凭据将当前 PowerShell 会话连接到Microsoft Entra ID租户。

示例 2:委派访问权限:将 PowerShell 会话连接到具有所需范围的租户

Connect-Entra -Scopes 'User.Read.All', 'Group.ReadWrite.All'
Welcome to Microsoft Graph!

此示例演示如何使用范围对Microsoft Entra ID进行身份验证。

示例 3:委派访问:使用访问令牌

$secureString = ConvertTo-SecureString -String $AccessToken -AsPlainText -Force
Connect-Entra -AccessToken $secureString
Welcome to Microsoft Graph!

此示例演示如何使用访问令牌以交互方式对Microsoft Entra ID进行身份验证。

有关如何获取或创建访问令牌的详细信息,请参阅 请求访问令牌

示例 4:委派访问:使用设备代码流

Connect-Entra -UseDeviceCode
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code A1B2CDEFGH to authenticate.

此示例演示如何使用设备代码流以交互方式对Microsoft Entra ID进行身份验证。

有关详细信息,请参阅 设备代码流

示例 5:仅限应用访问:将客户端凭据与证书指纹配合使用

$connectParams = @{
    TenantId = 'aaaabbbb-0000-cccc-1111-dddd2222eeee'
    ApplicationId = '00001111-aaaa-2222-bbbb-3333cccc4444'
    CertificateThumbprint = 'AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00'
}

Connect-Entra @connectParams
Welcome to Microsoft Graph!

此示例演示如何使用 ApplicationId 和 CertificateThumbprint 进行身份验证。

有关如何获取或创建 CertificateThumbprint 的详细信息,请参阅 “使用仅限应用的访问权限进行身份验证”。

示例 6:仅限应用访问:将客户端凭据与证书名称配合使用

$params = @{
    ClientId = '00001111-aaaa-2222-bbbb-3333cccc4444'
    TenantId = 'aaaabbbb-0000-cccc-1111-dddd2222eeee'
    CertificateName = 'YOUR_CERT_SUBJECT'
}

Connect-Entra @params
 $Cert = Get-ChildItem Cert:\LocalMachine\My\$CertThumbprint
 Connect-Entra -ClientId '<App-Id>' -TenantId '<Tenant-Id>' -Certificate $Cert

可以通过运行上述命令找到证书主体。

示例 7:仅限应用访问:将客户端凭据与证书配合使用

$Cert = Get-ChildItem Cert:\LocalMachine\My\$CertThumbprint
$params = @{
    ClientId = '00001111-aaaa-2222-bbbb-3333cccc4444'
    TenantId = 'aaaabbbb-0000-cccc-1111-dddd2222eeee'
    Certificate = $Cert
}

Connect-Entra @params

示例 8:仅限应用的访问权限:使用客户端密码凭据

$ClientSecretCredential = Get-Credential -Credential '00001111-aaaa-2222-bbbb-3333cccc4444'
# Enter client_secret in the password prompt.
Connect-Entra -TenantId 'aaaabbbb-0000-cccc-1111-dddd2222eeee' -ClientSecretCredential $ClientSecretCredential

此身份验证方法非常适合后台交互。

有关如何获取凭据的详细信息,请参阅 Get-Credential 命令。

示例 9:仅限应用的访问权限:使用托管标识:系统分配的托管标识

Connect-Entra -Identity

在服务实例上使用自动托管标识。 标识与服务实例的生命周期相关联。

示例 10:仅限应用的访问权限:使用托管标识:用户分配的托管标识

Connect-Entra -Identity -ClientId 'User_Assigned_Managed_identity_Client_Id'

使用用户创建的托管标识作为独立的Azure资源。

示例 11:以其他标识的形式连接到环境

Connect-Entra -ContextScope 'Process'
Welcome to Microsoft Graph!

若要作为与 CurrentUser 不同的标识进行连接,请使用值 Process 指定 ContextScope 参数。

有关如何获取当前上下文的详细信息,请参阅 Get-EntraContext 命令。

示例 12:连接到环境或云

Get-EntraEnvironment
Name     AzureADEndpoint                   GraphEndpoint                           Type
----     ---------------                   -------------                           ----
China    https://login.chinacloudapi.cn    https://microsoftgraph.chinacloudapi.cn Built-in
Global   https://login.microsoftonline.com https://graph.microsoft.com             Built-in
USGov    https://login.microsoftonline.us  https://graph.microsoft.us              Built-in
USGovDoD https://login.microsoftonline.us  https://dod-graph.microsoft.us          Built-in
Connect-Entra -Environment 'Global'

使用 Connect-Entra 时,可以选择面向其他环境。 默认情况下,Connect-Entra 面向全局公有云。

示例 13:设置 HTTP 客户端超时(以秒为单位)

 Connect-Entra -ClientTimeout 60
Welcome to Microsoft Graph!

本示例设置 HTTP 客户端超时(以秒为单位)。

示例 14:隐藏欢迎消息

Connect-Entra -NoWelcome

本示例隐藏欢迎消息。

示例 15:允许使用环境变量进行身份验证

Connect-Entra -EnvironmentVariable

此示例允许使用环境变量进行身份验证。

参数

-AccessToken

指定Microsoft Entra服务的持有者令牌。 访问令牌会超时,必须处理其刷新。

参数属性

类型:SecureString
默认值:None
支持通配符:False
不显示:False

参数集

AccessTokenParameterSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Certificate

在调用期间提供的 X.509 证书。

参数属性

类型:X509Certificate2
默认值:None
支持通配符:False
不显示:False

参数集

AppCertificateParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-CertificateSubjectName

证书的使用者可分辨名称。 从当前用户的证书存储中检索证书。

参数属性

类型:System.String
默认值:None
支持通配符:False
不显示:False
别名:CertificateSubject, CertificateName

参数集

AppCertificateParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-CertificateThumbprint

指定有权执行此操作的用户帐户的数字公钥 X.509 证书的证书指纹。

参数属性

类型:System.String
默认值:None
支持通配符:False
不显示:False

参数集

AppCertificateParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-ClientId

指定服务主体的应用程序 ID。

参数属性

类型:System.String
默认值:None
支持通配符:False
不显示:False
别名:AppId, ApplicationId

参数集

UserParameterSet
Position:1
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
IdentityParameterSet
Position:1
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
AppCertificateParameterSet
Position:1
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-ClientSecretCredential

PSCredential 对象为服务主体凭据提供应用程序 ID 和客户端密码。 有关 PSCredential 对象的详细信息,请键入 Get-Help Get-Credential。

参数属性

类型:PSCredential
默认值:None
支持通配符:False
不显示:False
别名:SecretCredential, 凭据

参数集

AppSecretCredentialParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-ClientTimeout

设置 HTTP 客户端超时(以秒为单位)。

参数属性

类型:System.Double
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-ContextScope

确定身份验证上下文的范围。 此 ContextScope 接受 Process 当前进程或 CurrentUser 用户启动的所有会话。

参数属性

类型:ContextScope
默认值:None
接受的值:Process, CurrentUser
支持通配符:False
不显示:False

参数集

UserParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
AppCertificateParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
IdentityParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
AppSecretCredentialParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
EnvironmentVariableParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Environment

要连接到的国家云环境的名称。 默认情况下使用全局云。

参数属性

类型:System.String
默认值:None
支持通配符:False
不显示:False
别名:环境名称, NationalCloud

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-EnvironmentVariable

允许使用在主机上配置的环境变量进行身份验证。 请参见https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/identity/Azure.Identity#environment-variables

参数属性

类型:System.Management.Automation.SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

EnvironmentVariableParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Identity

使用托管标识登录

参数属性

类型:System.Management.Automation.SwitchParameter
默认值:None
支持通配符:False
不显示:False
别名:ManagedIdentity, ManagedServiceIdentity, MSI

参数集

IdentityParameterSet
Position:1
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-NoWelcome

隐藏欢迎消息。

参数属性

类型:System.Management.Automation.SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Scopes

要同意的委托权限数组。

参数属性

类型:

System.String[]

默认值:None
支持通配符:False
不显示:False

参数集

UserParameterSet
Position:1
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-SendCertificateChain

获取令牌以使用给定证书启用基于使用者名称/颁发者的身份验证时,在客户端声明中包括 x5c 标头。

参数属性

类型:Boolean
默认值:None
支持通配符:False
不显示:False

参数集

AppCertificateParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-TenantId

指定租户的 ID。

如果未指定此参数,则帐户通过主租户进行身份验证。

必须指定 TenantId 参数以作为服务主体进行身份验证或在使用Microsoft 帐户时进行身份验证。

参数属性

类型:System.String
默认值:None
支持通配符:False
不显示:False
别名:受众, 租户

参数集

UserParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
AppCertificateParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
AppSecretCredentialParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-UseDeviceCode

使用设备代码身份验证,而不是浏览器控件。

参数属性

类型:System.Management.Automation.SwitchParameter
默认值:None
支持通配符:False
不显示:False
别名:UseDeviceAuthentication, DeviceCode, DeviceAuth, 设备

参数集

UserParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters