Vincular locatário B2C existente por meio da CLI do Azure

Dec 01 2020

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 resourcemas 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 Standardetc., mas nenhuma delas parece funcionar
  • Remover um link existente via az resource delete --ids /subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.AzureActiveDirectory/b2cDirectories/<tenant>.onmicrosoft.comfunciona 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

SatyaV Dec 02 2020 at 14:31

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