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

New-MsolServicePrincipal

将服务主体添加到 Azure Active Directory。

语法

New-MsolServicePrincipal
   [-ServicePrincipalNames <String[]>]
   [-AppPrincipalId <Guid>]
   -DisplayName <String>
   [-AccountEnabled <Boolean>]
   [-Addresses <RedirectUri[]>]
   [-Type <ServicePrincipalCredentialType>]
   [-Value <String>]
   [-StartDate <DateTime>]
   [-EndDate <DateTime>]
   [-Usage <ServicePrincipalCredentialUsage>]
   [-TenantId <Guid>]
   [<CommonParameters>]

说明

New-MsolServicePrincipal cmdlet 创建一个服务主体,该主体可用于表示业务线 (LOB) 应用程序或本地服务器(如 Microsoft Exchange、SharePoint 或 Lync)Microsoft Azure Active Directory作为服务主体对象。 将新应用程序添加为服务主体将允许该应用程序向 Microsoft Office 365 等其他服务进行身份验证。

示例

示例 1:创建服务主体

PS C:\> New-MsolServicePrincipal -ServicePrincipalNames @("MyApp/myApp.com") -DisplayName "My Application"

此命令创建服务主体。 在此示例中,服务主体使用服务主体名称 MyApp/myApp.com 创建,显示名称“我的应用程序”,并使用自动生成的 256 位对称密钥来验证应用程序。 此密钥的有效期为自当日起的一年。

示例 2:创建使用 X509 证书的服务主体

PS C:\> $cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
PS C:\> $cer.Import("C:\temp\myapp.cer")
PS C:\> $binCert = $cer.GetRawCertData()
PS C:\> $credValue = [System.Convert]::ToBase64String($binCert);
PS C:\> New-MsolServicePrincipal -ServicePrincipalNames @("MyApp/myApp.com") -DisplayName "My Application" -Type asymmetric -Value $credValue

此示例创建服务主体。 在此示例中,服务主体使用服务主体名称 MyApp/myApp.com 创建,显示名称“我的应用程序”,并使用配置的 X509 证书 myapp.cer,该证书配置了 base 64 编码的非对称密钥。

参数

-AccountEnabled

指定是否需要启用帐户。 默认值为$True。

Type:Boolean
Position:Named
Default value:True
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Addresses

指定应用程序使用的地址。 使用 New-MsolServicePrincipalAddresses cmdlet 帮助创建地址列表对象。

Type:RedirectUri[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-AppPrincipalId

指定租户中服务主体的唯一应用程序 ID。 创建后,无法更改此属性。 如果未指定此参数,则会生成应用程序 ID。

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DisplayName

指定服务主体的显示名称。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-EndDate

指定凭据使用情况的有效结束日期。 默认结束日期值为从今天开始的一年。

Type:DateTime
Position:Named
Default value:Today + 1 year
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ServicePrincipalNames

与服务主体关联的服务主体名称列表 (SPN) 。

SPN 对于每个公司租户必须是唯一的,由应用程序用来唯一标识自身。 默认情况下,服务主体 AppID 始终添加为 SPN。 SPN 必须使用以下格式之一:

  • appName
  • appName/hostname
  • 有效的 URL

AppName 表示应用程序的名称,主机名表示应用程序的 URI 颁发机构。 当服务主体表示WS-Federation信赖方时,可以将 SPN 设置为将被视为 WS-Federation wtrealm 参数的 URL。

Type:String[]
Position:Named
Default value:AppId of the service principal
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-StartDate

指定凭据使用情况的有效开始日期。 默认开始日期值为今天。

Type:DateTime
Position:Named
Default value:Today
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TenantId

指定要对其执行操作的租户的唯一 ID。 默认值为当前用户的租户。 此参数仅适用于合作伙伴用户。

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Type

指定要使用的凭据的类型。 有效值为:非对称、对称和密码。

  • 如果非对称,则 Value 参数必须设置为 base 64 编码 X509 证书的公共部分。
  • 如果对称,如果未设置 Value ,则会生成 256 位 AES 对称密钥。
  • 如果密码,则必须指定 Value 参数,并且不应进行 base 64 编码。

默认设置为“symmetric”。

Type:ServicePrincipalCredentialType
Position:Named
Default value:Symmetric
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Usage

指定凭据密钥的使用。 凭据密钥用法可以设置为签名或验证令牌。 默认设置是验证的。

仅允许对称密钥使用签名。 验证是否允许所有密钥类型。

Azure Active Directory 需要验证凭据密钥,以验证应用程序发送的请求令牌是否由此服务主体表示。 应用程序可以选择性地要求使用签名密钥(而不是标识 Azure Active Directory 的非对称公钥)向应用程序颁发令牌。 在这种情况下,请为服务主体提供一个签名凭据密钥。

Type:ServicePrincipalCredentialUsage
Position:Named
Default value:Verify
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Value

指定凭据的值。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

输出

Microsoft.Online.Administration.ServicePrincipalExtended

此 cmdlet 返回它添加的服务主体。 这包括以下信息:

  • ObjectId。 服务主体的唯一标识符。
  • AppPrincipalId。 服务主体的应用程序标识符。
  • DisplayName。 服务主体的友好名称。
  • ServicePrincipalName。 与服务主体关联的服务主体名称列表 (SPN) 。
  • TrustedForDelegation。 指示是否允许服务主体进行委派的值。
  • AccountEnabled。 指示帐户是否已启用的值。

它还检索添加的凭据列表。 每个凭据对象都包含以下信息:

  • 键入 。 服务主体凭据的类型 (非对称/对称/其他) 。
  • Value。 凭据的值。 如果凭据类型为 certificate,则此项表示 base64 编码证书。 如果凭据类型是对称的,则表示 AES 密钥。
  • KeyGroupId。 保留供内部使用的标识符。
  • KeyId。 密钥的唯一标识符。
  • StartDate。 凭据使用情况的有效开始日期。
  • EndDate。 凭据使用情况的有效结束日期。
  • 使用情况。 指定凭据是否用于对令牌进行签名或验证。