共用方式為


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>]

Description

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、顯示名稱 My Application 建立,並使用自動產生的 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 建立,並使用以基底 64 編碼非對稱密鑰設定的 X509 憑證myapp.cer。

參數

-AccountEnabled

指定帳戶是否需要啟用。 預設值為 $True。

類型:Boolean
Position:Named
預設值:True
必要:False
接受管線輸入:True
接受萬用字元:False

-Addresses

指定應用程式所使用的位址。 使用 New-MsolServicePrincipalAddresses Cmdlet 來協助建立地址列表物件。

類型:RedirectUri[]
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-AppPrincipalId

指定租用戶中服務主體的唯一應用程式標識碼。 建立之後,就無法變更此屬性。 如果您未指定此參數,就會產生應用程式識別碼。

類型: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 每個公司租用戶都必須是唯一的,應用程式會使用SPN來唯一識別本身。 根據預設,服務主體 AppID 一律會新增為 SPN。 SPN 必須使用下列其中一種格式:

  • appName
  • appName/hostname
  • 有效的 URL

AppName 代表應用程式的名稱,而主機名代表應用程式的 URI 授權單位。 當服務主體代表 WS-Federation 信賴憑證者時,SPN 可以設定為將視為 wtrealm 參數 WS-Federation URL。

類型:String[]
Position:Named
預設值:AppId of the service principal
必要:False
接受管線輸入:True
接受萬用字元:False

-StartDate

指定認證使用方式的有效開始日期。 默認開始日期值為今天。

類型:DateTime
Position:Named
預設值:Today
必要:False
接受管線輸入:True
接受萬用字元:False

-TenantId

指定要執行作業之租使用者的唯一標識符。 預設值是目前使用者的租使用者。 此參數僅適用於合作夥伴使用者。

類型:Guid
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-Type

指定要使用的認證類型。 有效值為:非對稱、對稱和密碼。

  • 如果非對稱, Value 參數必須設定為基底 64 編碼 X509 憑證的公用部分。
  • 如果對稱,如果未設定 Value ,就會產生 256 位 AES 對稱密鑰。
  • 如果為 password,則必須指定 Value 參數,而且不應該以 base 64 編碼。

默認設定為 「symmetric」。

類型: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。 值,指出帳戶是否已啟用。

它也會擷取已新增的認證清單。 每個認證物件都包含下列資訊:

  • 類型。 服務主體認證的類型 (非對稱/對稱/其他) 。
  • 值。 認證的值。 如果認證類型為憑證,則此值代表 base 64 編碼憑證。 如果認證類型是對稱的,則表示 AES 金鑰。
  • KeyGroupId。 保留供內部使用的標識碼。
  • KeyId。 金鑰的唯一識別碼。
  • StartDate。 認證使用方式的有效開始日期。
  • EndDate。 認證使用方式的有效結束日期。
  • 使用狀況。 指定認證是否用來簽署或驗證令牌。