Свяжите существующий клиент B2C через Azure CLI
Как программно связать существующий клиент 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 выглядит следующим образом
Любые советы приветствуются. Спасибо за вашу помощь!
Ответы
Я не думаю, что в настоящее время 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