Свяжите существующий клиент B2C через Azure CLI

Dec 01 2020

Как программно связать существующий клиент B2C через Azure CLI? Запуск этой строки:

az resource create --resource-group <rg> --resource-type Microsoft.AzureActiveDirectory/b2cDirectories --name <tenant>.onmicrosoft.com --location Europe --properties "{\"tenantId\": \"<tenantId>\", \"sku\": { \"name\": \"Standard\", \"tier\": \"A0\" } }"

Возврат, BadRequestError: The 'sku' property is required for creating a b2c directory resourceно он есть

"Ресурс связи B2C" ARM выглядит следующим образом:

{
   "type": "Microsoft.AzureActiveDirectory/b2cDirectories",
   "apiVersion": "2017-01-30",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "tags": {},
   "sku": {
      "name": "Standard",
      "tier": "A0"
   },
   "properties": {
      "tenantId": "[parameters('tenantId')]"
   }
}

Дальнейшая информация:

  • Я пробовал разные варианты в отношении части sku, например, полностью исключив ее или переместив как отдельный параметр и --sku Standardт. Д., Но ни один из них, похоже, не работает.
  • Удаление существующей ссылки через az resource delete --ids /subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.AzureActiveDirectory/b2cDirectories/<tenant>.onmicrosoft.comработает отлично
  • Почему нам это надо? Мы автоматизируем развертывание инфраструктуры с помощью Terraform. Мы знаем об ограничениях автоматизации клиентов B2C (см. Здесь , здесь или здесь ), поэтому мы стремимся удалить / добавить ссылку b2c через конвейер, чтобы хотя бы сохранить чистоту подписки при уничтожении / применении инфраструктуры.
  • Связывание существующего клиента B2C через портал Azure выглядит следующим образом

Любые советы приветствуются. Спасибо за вашу помощь!

Ответы

SatyaV Dec 02 2020 at 14:31

Я не думаю, что в настоящее время Azure CLI может управлять клиентами B2C.

Как вы уже знаете, проводится подробное обсуждение https://github.com/Azure/azure-cli/issues/12058

Другой программный подход:

Я захватил Fiddler Traces, чтобы понять поток / или конечную точку, которая отвечает за это. Я смог указать на конечную точку ниже. Я проверял создание нового клиента Azure B2C.

PUT https://management.azure.com/subscriptions/SUBSCRIBTION/resourceGroups/RESOURCEGROUP/providers/Microsoft.AzureActiveDirectory/b2cDirectories/contosoorganiztion.onmicrosoft.com?api-version=2019-01-01-preview

{"location":"United States","sku":{"name":"Standard","tier":"A0"},"properties":{"createTenantProperties":{"displayName":"Contoso Organization","countryCode":"US"}}}

Однако мне не удалось проверить параметр «Связать с существующим арендатором» (для вашего требования) на моей стороне из-за разрешений на моей стороне. Но я предполагаю, что должна быть аналогичная конечная точка, отвечающая за то же самое. Вы можете захватить следы Fiddler с помощью дешифрованного Https (или любого инструмента, который поможет захватить дешифрованный HTTPS-трафик), пытаясь связать существующего клиента, чтобы понять конечную точку и тело запроса.

Примечание :

Имейте в виду, что этот API / конечная точка не поддерживается и может быть изменена, поэтому не рекомендуется для производственных сред:

Чтобы попасть в конечную точку, вам понадобится токен доступа.

Чтобы получить токен, идентификатор ресурса портала Azure будет: 74658136-14ec-4630-ad9b-26e160ff0fc6.

az account get-access-token --resource 74658136-14ec-4630-ad9b-26e160ff0fc6