共用方式為


Microsoft.Common.ServicePrincipalSelector 使用者介面元素

此控制項可讓使用者選取現有的服務主體,或註冊新的應用程式。 當您選取 [建立新的項目] 時,請遵循下列步驟來註冊新的應用程式。 當您選取現有的應用程式時,控制項會提供文字方塊以便輸入密碼或憑證指紋。

使用者介面範例

您可以使用預設應用程式、建立新的應用程式,或是使用現有的應用程式。

使用預設應用程式或建立一個新的應用程式

預設的視圖取決於 defaultValue 屬性中的值,而 [服務主體類型] 會設定為 [建立新項目]。 如果 principalId 屬性包含有效全域唯一識別碼 (GUID),控制項就會搜尋應用程式的 objectId。 如果使用者未從控制項選取項目,則會套用預設值。

如果您想要註冊新的應用程式,請選取 [變更選取項目],然後就會顯示 [註冊應用程式] 對話方塊。 輸入名稱支援的帳戶類型,然後選取 [註冊]按鈕。

Microsoft.Common.ServicePrincipalSelector 初始檢視與默認應用程式或建立新選項的螢幕快照。

註冊新的應用程式之後,請使用 [驗證類型] 來輸入密碼或憑證指紋。

註冊新應用程式之後,Microsoft.Common.ServicePrincipalSelector 驗證選項的螢幕快照。

更新現有的應用程式

若要使用現有的應用程式,請選擇 [選取現有項目],然後選取 [進行選取]。 使用 [選取應用程式] 對話方塊可搜尋應用程式的名稱。 從結果中選取應用程式,然後選取 [選取] 按鈕。 選取應用程式之後,控制項會顯示驗證類型以便輸入密碼或憑證指紋。

Microsoft.Common.ServicePrincipalSelector 的螢幕快照,其中已顯示選取現有的應用程式選項和驗證類型。

結構描述

{
  "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:指定預設的 principalIdname
  • 選用的屬性如下所示:

    • 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"
  }
}

下一步