Vincular locatário B2C existente por meio da CLI do Azure
Como vincular um locatário B2C existente de maneira programática por meio da CLI do Azure? Executando esta linha:
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\" } }"
Volta BadRequestError: The 'sku' property is required for creating a b2c directory resource
mas está aí
O ARM "recurso de link B2C" tem a seguinte aparência:
{
"type": "Microsoft.AzureActiveDirectory/b2cDirectories",
"apiVersion": "2017-01-30",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": {},
"sku": {
"name": "Standard",
"tier": "A0"
},
"properties": {
"tenantId": "[parameters('tenantId')]"
}
}
Outras informações:
- Eu tentei diferentes variações em relação à parte do sku , como deixá-la completamente de fora ou movê-la como um parâmetro dedicado,
--sku Standard
etc., mas nenhuma delas parece funcionar - Remover um link existente via
az resource delete --ids /subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.AzureActiveDirectory/b2cDirectories/<tenant>.onmicrosoft.com
funciona perfeitamente bem - Por que nós precisamos disso? Automatizamos nossa implantação de infra com Terraform. Estamos cientes das limitações de automação de locatários B2C (veja aqui , aqui ou aqui ), portanto, pretendemos remover / adicionar o link b2c via pipeline para, pelo menos, manter a assinatura limpa ao destruir / aplicar infra.
- Vincular um locatário B2C existente por meio do Portal do Azure se parece com isto
Qualquer conselho apreciado. Obrigado pela ajuda!
Respostas
Não acho que a CLI do Azure atualmente possa gerenciar locatários B2C.
Como você já sabe, há uma discussão detalhada feita https://github.com/Azure/azure-cli/issues/12058
Outra abordagem programática:
Eu capturei Fiddler Traces para entender o fluxo / ou o endpoint que é responsável. Consegui apontar para o endpoint abaixo. Eu estava verificando a criação de um novo locatário do 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"}}}
No entanto, não consegui marcar a opção "Link para o inquilino existente" (para sua necessidade) no meu lado devido às permissões no meu lado. Mas estou assumindo que deve haver um endpoint semelhante responsável pelo mesmo. Você pode capturar rastreamentos do Fiddler com Https descriptografado (ou qualquer ferramenta que ajude a capturar o tráfego HTTPS descriptografado), tentando vincular um locatário existente para entender o endpoint e o corpo da solicitação.
Observação :
Lembre-se de que esta API / endpoint não é compatível e está sujeita a alterações, portanto, não é recomendado para ambientes de produção:
Você precisará do token de acesso para atingir o endpoint.
Para obter o token, a id do recurso do portal do Azure seria: 74658136-14ec-4630-ad9b-26e160ff0fc6
az account get-access-token --resource 74658136-14ec-4630-ad9b-26e160ff0fc6