Lier un client B2C existant via Azure CLI

Dec 01 2020

Comment lier un client B2C existant par programme via Azure CLI? Exécution de cette ligne:

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

Revient BadRequestError: The 'sku' property is required for creating a b2c directory resourcemais c'est là

La "ressource de lien B2C" d'ARM ressemble à ceci:

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

Informations complémentaires:

  • J'ai essayé différentes variantes concernant la partie sku , comme la laisser complètement de côté ou la déplacer en tant que paramètre dédié, --sku Standardetc. mais aucune d'entre elles ne semble fonctionner
  • La suppression d'un lien existant via az resource delete --ids /subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.AzureActiveDirectory/b2cDirectories/<tenant>.onmicrosoft.comfonctionne parfaitement bien
  • Pourquoi avons nous besoin de ça? Nous automatisons notre déploiement infra avec Terraform. Nous sommes conscients des limites de l'automatisation des locataires B2C (voir ici , ici ou ici ), nous visons donc à supprimer / ajouter le lien b2c via un pipeline pour au moins garder l'abonnement propre lors de la destruction / application d'infra.
  • La liaison d'un locataire B2C existant via le portail Azure ressemble à ceci

Tout conseil apprécié. Merci pour ton aide!

Réponses

SatyaV Dec 02 2020 at 14:31

Je ne pense pas qu'Azure CLI puisse actuellement avoir la capacité de gérer les locataires B2C.

Comme vous le savez déjà, une discussion détaillée est en cours https://github.com/Azure/azure-cli/issues/12058

Autre approche programmatique:

J'avais capturé Fiddler Traces pour comprendre le flux / ou le point final qui en est responsable. J'ai pu pointer vers le point final ci-dessous. Je cherchais à créer un nouveau locataire 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"}}}

Cependant, je n'ai pas été en mesure de cocher l'option "Lien vers le locataire existant" (pour vos besoins) à ma fin en raison des autorisations de mon côté. Mais je suppose qu'il devrait y avoir un point final similaire responsable de la même chose. Vous pouvez capturer les traces Fiddler avec Https décrypté (ou tout outil qui aidera à capturer le trafic HTTPS décrypté), en essayant de lier un locataire existant pour comprendre le point de terminaison et le corps de la demande.

Noter :

Gardez à l'esprit que cette API / point de terminaison n'est pas pris en charge et sujet à changement, donc non recommandé pour les environnements de production:

Vous aurez besoin d'un jeton d'accès pour atteindre le point de terminaison.

Pour obtenir le jeton, l'ID de ressource du portail Azure serait: 74658136-14ec-4630-ad9b-26e160ff0fc6

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