Microsoft.Common.ServicePrincipalSelector 使用者介面元素
此控制項可讓使用者選取現有的服務主體,或註冊新的應用程式。 當您選取 [建立新的項目] 時,請遵循下列步驟來註冊新的應用程式。 當您選取現有的應用程式時,控制項會提供文字方塊以便輸入密碼或憑證指紋。
使用者介面範例
您可以使用預設應用程式、建立新的應用程式,或是使用現有的應用程式。
使用預設應用程式或建立一個新的應用程式
預設的視圖取決於 defaultValue
屬性中的值,而 [服務主體類型] 會設定為 [建立新項目]。 如果 principalId
屬性包含有效全域唯一識別碼 (GUID),控制項就會搜尋應用程式的 objectId
。 如果使用者未從控制項選取項目,則會套用預設值。
如果您想要註冊新的應用程式,請選取 [變更選取項目],然後就會顯示 [註冊應用程式] 對話方塊。 輸入名稱、支援的帳戶類型,然後選取 [註冊]按鈕。
註冊新的應用程式之後,請使用 [驗證類型] 來輸入密碼或憑證指紋。
更新現有的應用程式
若要使用現有的應用程式,請選擇 [選取現有項目],然後選取 [進行選取]。 使用 [選取應用程式] 對話方塊可搜尋應用程式的名稱。 從結果中選取應用程式,然後選取 [選取] 按鈕。 選取應用程式之後,控制項會顯示驗證類型以便輸入密碼或憑證指紋。
結構描述
{
"name": "ServicePrincipal",
"type": "Microsoft.Common.ServicePrincipalSelector",
"label": {
"password": "Password",
"certificateThumbprint": "Certificate thumbprint",
"authenticationType": "Authentication Type",
"sectionHeader": "Service Principal"
},
"toolTip": {
"password": "Password",
"certificateThumbprint": "Certificate thumbprint",
"authenticationType": "Authentication Type"
},
"defaultValue": {
"principalId": "<default guid>",
"name": "(New) default App Id"
},
"constraints": {
"required": true,
"regex": "^[a-zA-Z0-9]{8,}$",
"validationMessage": "Password must be at least 8 characters long, contain only numbers and letters"
},
"options": {
"hideCertificate": false
},
"visible": true
}
備註
必要的屬性如下所示:
name
type
label
defaultValue
:指定預設的principalId
和name
。
選用的屬性如下所示:
toolTip
:將工具提示infoBalloon
附加至每個標籤。visible
:隱藏或顯示控制項。options
:指定是否應該提供憑證指紋選項。constraints
:密碼驗證的規則運算式條件約束。
範例
下列程式代碼是控件的 Microsoft.Common.ServicePrincipalSelector
範例。 defaultValue
屬性會設定 principalId
為 <default guid>
,作為預設應用程式識別碼 GUID 的預留位置。
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [],
"steps": [
{
"name": "SPNcontrol",
"label": "SPNcontrol",
"elements": [
{
"name": "ServicePrincipal",
"type": "Microsoft.Common.ServicePrincipalSelector",
"label": {
"password": "Password",
"certificateThumbprint": "Certificate thumbprint",
"authenticationType": "Authentication Type",
"sectionHeader": "Service Principal"
},
"toolTip": {
"password": "Password",
"certificateThumbprint": "Certificate thumbprint",
"authenticationType": "Authentication Type"
},
"defaultValue": {
"principalId": "<default guid>",
"name": "(New) default App Id"
},
"constraints": {
"required": true,
"regex": "^[a-zA-Z0-9]{8,}$",
"validationMessage": "Password must be at least 8 characters long, contain only numbers and letters"
},
"options": {
"hideCertificate": false
},
"visible": true
}
]
}
],
"outputs": {
"appId": "[steps('SPNcontrol').ServicePrincipal.appId]",
"objectId": "[steps('SPNcontrol').ServicePrincipal.objectId]",
"password": "[steps('SPNcontrol').ServicePrincipal.password]",
"certificateThumbprint": "[steps('SPNcontrol').ServicePrincipal.certificateThumbprint]",
"newOrExisting": "[steps('SPNcontrol').ServicePrincipal.newOrExisting]",
"authenticationType": "[steps('SPNcontrol').ServicePrincipal.authenticationType]"
}
}
}
範例輸出
appId
是您選取或建立的應用程式註冊標識碼。 objectId
是服務主體的物件識別碼陣列,其針對選取的應用程式註冊所設定。
當控制項未選取任何項目時,newOrExisting
屬性值為 新增:
{
"appId": {
"value": "<default guid>"
},
"objectId": {
"value": ["<default guid>"]
},
"password": {
"value": "<password>"
},
"certificateThumbprint": {
"value": ""
},
"newOrExisting": {
"value": "new"
},
"authenticationType": {
"value": "password"
}
}
從控制項選取 [建立新的項目] 或 [現有的應用程式] 時,newOrExisting
屬性值會是 [現有項目]:
{
"appId": {
"value": "<guid>"
},
"objectId": {
"value": ["<guid>"]
},
"password": {
"value": "<password>"
},
"certificateThumbprint": {
"value": ""
},
"newOrExisting": {
"value": "existing"
},
"authenticationType": {
"value": "password"
}
}
下一步
- 如需建立 UI 定義的簡介,請參閱開始使用 CreateUiDefinition。
- 如需 UI 元素中通用屬性的說明,請參閱 CreateUiDefinition 元素。