你当前正在访问 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 Azure Active Directory 中的 Microsoft Exchange、SharePoint 或 Lync)作为服务主体对象。 将新应用程序添加为服务主体将允许该应用程序向 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(显示名称 My Application)创建,并使用提供的 X509 证书myapp.cer,该证书配置了基本 64 编码的非对称密钥。

参数

-AccountEnabled

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

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

-Addresses

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

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

-AppPrincipalId

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

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

-DisplayName

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

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

-EndDate

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

类型:DateTime
Position:Named
默认值:Today + 1 year
必需:False
接受管道输入:True
接受通配符:False

-ServicePrincipalNames

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

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

  • appName
  • appName/hostname
  • 有效的 URL

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

类型:String[]
Position:Named
默认值:AppId of the service principal
必需:False
接受管道输入:True
接受通配符:False

-StartDate

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

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

-TenantId

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

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

-Type

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

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

默认设置为“对称”。

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

-Usage

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

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

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

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

-Value

指定凭据的值。

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

输出

Microsoft.Online.Administration.ServicePrincipalExtended

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

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

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

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