"Use a tenant-specific endpoint ou configure the application vers be multi-tenant" lors de la connexion à mon site web Azure

“Use a tenant-specific endpoint or configure the application to be multi-tenant” lors de la connexion à mon site web Azure


Source : Stack Overflow [azure]

Si vous êtes un administrateur Azure recevant ce message, cela peut être pour la raison exacte indiquée dans le message d’erreur - vous ne pouvez pas utiliser le point de terminaison d’API common pour les connexions MSFT vers des applications spécifiques à un locataire.

Dans mon cas, je configurais un enregistrement d’application avec un exemple de code - l’exemple de code devait être modifié avec un nouveau point de terminaison. C’est-à-dire que la ligne suivante :

let kAuthority = "https://login.microsoftonline.com/common"

devait être changée en :

let kAuthority = "https://login.microsoftonline.com/MY_TENANT_NAME"

…ou, si vous avez des espaces/caractères spéciaux dans le nom de votre locataire, ou si vous préférez un Key ID, utilisez le Tenant ID :

let kAuthority = "https://login.microsoftonline.com/MY_TENANT_GUID"

Le nom/ID du locataire pour votre organisation Azure peut être obtenu en tapant “Tenant Properties” dans la barre de recherche Azure.

Xamarin : La note ci-dessus a fonctionné pour MSAL iOS - pour Xamarin MSAL Android/iOS, il n’y avait pas de moyen direct de définir l’autorité dans l’appel principal. Elle doit être chaînée à l’appel de connexion interactif.

Par exemple, l’exemple de code ici :

authResult = await App.PCA.AcquireTokenInteractive(App.Scopes)
                      .WithParentActivityOrWindow(App.ParentWindow)
                      .ExecuteAsync();

Doit être changé en ceci :

authResult = await App.PCA.AcquireTokenInteractive(App.Scopes)
                      .WithAuthority("https://login.microsoftonline.com/YOUR_TENANT_NAME")
                      .WithParentActivityOrWindow(App.ParentWindow)
                      .ExecuteAsync();