J'ai besoin d'obtenir l'identificateur de nom du jeton envoyé par Azure AD. Je suppose que c'est unique pour chaque utilisateur de l'AD et avoir une certaine logique d'autorisation personnalisée basée sur elle. Par exemple,Récupération de NameIdentifier à partir d'Azure Active Directory AuthenticationResult.AccessToken
AuthenticationResult result = authenticationContext.AcquireToken(webApiResourceId, certificateCredential);
string accessToken = result.AccessToken;
Ce accessToken est envoyé au WebAPI comme AuthenticationHeader, qui décrypte et va chercher le nameidentifier comme
Claim tenantClaim = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier);
Mais ce processus sur la WebAPI est transparente et est réalisée par ADAL. Cependant, j'ai besoin d'obtenir le NameIdentifier du côté du client lui-même. Y a-t-il un moyen de récupérer le NameIdentifier au niveau du client lui-même, en décryptant le AccessToken? Je ne trouve pas la bonne réponse à la recherche.
Comme je l'ai mentionné dans mon article, le WebAPI utilise une certaine logique d'autorisation personnalisée basée sur NameIdentifier. Par conséquent, les clients sont tenus de donner leur NameIdentifier pour être intégré au service. Mon exigence, par conséquent, est de simplement obtenir le NameIdentifier. Il n'y a pas d'autre moyen de l'obtenir, sauf un jeton de décryptage. Quant à l'id_token, il vient comme [null] (http://imgur.com/S2Lm8IJ) pour le client. Le client utilise l'authentification par certificat avec AzureAD. Est-ce la raison pour laquelle id_token est nul? –
Si vous utilisez l'authentification par certificat, le jeton que vous récupérez ne représente pas un utilisateur mais une identité d'application. Cela n'aboutit pas à un jeton d'identité. Si vous avez besoin d'embarquer une application, il existe de nombreux autres paramètres caractérisant une application (comme clientid) que vous pouvez utiliser. Aussi, je suis confus. Si vous devez embarquer un client, pourquoi ne pouvez-vous pas simplement afficher le jeton dans la logique d'intégration? Extraire des informations d'un token que vous venez d'obtenir pour un autre service sans même le valider ne semble pas correspondre à un modèle dont je me souvienne. – vibronet