Lier un client B2C existant via Azure CLI
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 resource
mais 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 Standard
etc. 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.com
fonctionne 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
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