你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Connect-AzureAD

使用经过身份验证的帐户进行连接,以使用 Active Directory cmdlet 请求。

语法

Connect-AzureAD
       [-AzureEnvironmentName <EnvironmentName>]
       [-TenantId <String>]
       [-Credential <PSCredential>]
       [-AccountId <String>]
       [-LogLevel <LogLevel>]
       [-LogFilePath <String>]
       [-InformationAction <ActionPreference>]
       [-InformationVariable <String>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzureAD
       [-AzureEnvironmentName <EnvironmentName>]
       -TenantId <String>
       -CertificateThumbprint <String>
       -ApplicationId <String>
       [-LogLevel <LogLevel>]
       [-LogFilePath <String>]
       [-InformationAction <ActionPreference>]
       [-InformationVariable <String>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-AzureAD
       [-AzureEnvironmentName <EnvironmentName>]
       [-TenantId <String>]
       -AadAccessToken <String>
       [-MsAccessToken <String>]
       -AccountId <String>
       [-LogLevel <LogLevel>]
       [-LogFilePath <String>]
       [-InformationAction <ActionPreference>]
       [-InformationVariable <String>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

说明

Connect-AzureAD cmdlet 连接要用于 Azure Active Directory cmdlet 请求的经过身份验证的帐户。

只能将此经过身份验证的帐户与 Azure Active Directory cmdlet 一起使用。

示例

示例 1:将 PowerShell 会话连接到租户

PS C:\> Connect-AzureAD -Confirm

此命令将当前 PowerShell 会话连接到 Azure Active Directory 租户。 该命令会提示输入要连接到的租户的用户名和密码。 Confirm 参数会提示你进行确认。

如果为凭据启用了多重身份验证,则必须使用交互式选项登录或使用服务主体身份验证。

示例 2:使用变量连接会话

PS C:\> $Credential = Get-Credential
PS C:\> Connect-AzureAD -Credential $Credential

第一个命令获取用户凭据,然后将其存储在 $Credential 变量中。

第二个命令使用 $Credential 中的凭据连接当前 PowerShell 会话。

此帐户使用组织 ID 凭据向 Azure Active Directory 进行身份验证。 不能使用此帐户使用多重身份验证或 Microsoft 帐户凭据来运行 Azure Active Directory cmdlet。

示例 3:将会话作为服务主体进行连接

# Login to Azure AD PowerShell With Admin Account
Connect-AzureAD 

# Create the self signed cert
$currentDate = Get-Date
$endDate = $currentDate.AddYears(1)
$notAfter = $endDate.AddYears(1)
$pwd = "<password>"
$thumb = (New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName com.foo.bar -KeyExportPolicy Exportable -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -NotAfter $notAfter).Thumbprint
$pwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText
Export-PfxCertificate -cert "cert:\localmachine\my\$thumb" -FilePath c:\temp\examplecert.pfx -Password $pwd

# Load the certificate
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate("C:\temp\examplecert.pfx", $pwd)
$keyValue = [System.Convert]::ToBase64String($cert.GetRawCertData())


# Create the Azure Active Directory Application
$application = New-AzureADApplication -DisplayName "test123" -IdentifierUris "https://test123"
New-AzureADApplicationKeyCredential -ObjectId $application.ObjectId -CustomKeyIdentifier "Test123" -StartDate $currentDate -EndDate $endDate -Type AsymmetricX509Cert -Usage Verify -Value $keyValue

# Create the Service Principal and connect it to the Application
$sp=New-AzureADServicePrincipal -AppId $application.AppId

# Give the Service Principal Reader access to the current tenant (Get-AzureADDirectoryRole)
Add-AzureADDirectoryRoleMember -ObjectId 5997d714-c3b5-4d5b-9973-ec2f38fd49d5 -RefObjectId $sp.ObjectId

# Get Tenant Detail
$tenant=Get-AzureADTenantDetail
# Now you can login to Azure PowerShell with your Service Principal and Certificate
Connect-AzureAD -TenantId $tenant.ObjectId -ApplicationId  $sp.AppId -CertificateThumbprint $thumb

此命令将用户作为服务主体向 Azure Active Directory 进行身份验证。

参数

-AadAccessToken

指定 Azure Active Directory Graph 访问令牌。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-AccountId

指定帐户的 ID。 在使用用户访问令牌进行身份验证时,必须指定用户的 UPN。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-ApplicationId

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

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-AzureEnvironmentName

指定 Azure 环境的名称。 此参数的可接受值为:

  • AzureCloud
  • AzureChinaCloud
  • AzureUSGovernment
  • AzureGermanyCloud

默认值为 AzureCloud。

类型:EnvironmentName
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CertificateThumbprint

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

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Credential

指定 PSCredential 对象。 有关 PSCredential 对象的详细信息,请键入 Get-Help Get-Credential。

PSCredential 对象提供组织 ID 凭据的用户 ID 和密码。

类型:PSCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InformationAction

指定此 cmdlet 如何响应信息事件。 此参数的可接受值为:

  • 继续
  • 忽略
  • 查询
  • SilentlyContinue
  • 停止
  • 挂起
类型:ActionPreference
别名:infa
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InformationVariable

指定要在其中存储信息事件消息的变量。

类型:String
别名:iv
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-LogFilePath

此 PowerShell 会话的日志文件写入到的路径。 如果需要偏离默认 PowerShell 日志文件位置,请在此处提供一个值。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-LogLevel

指定日志级别。 此参数的可获取值为:

  • 信息
  • 错误
  • 警告

默认值为“信息”。

类型:LogLevel
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MsAccessToken

指定 Microsoft Graph 访问令牌。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-TenantId

指定租户的 ID。

如果未指定此参数,则会使用主租户对帐户进行身份验证。

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

类型:String
别名:Domain, TenantDomain
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 此 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False