J'essaye d'authentifier l'utilisateur avec ADFS et j'utilise ADAL. L'authentification semble fonctionner puisque je peux obtenir le AccessToken. Le problème est que, en regardant le code authResult
contient UserInfo
où toutes les propriétés (par exemple GivenName
ou FamilyName
) sont null
.Obtenir UserInfo à partir d'ADFS en UWP avec ADAL
AuthenticationContext authContext = null;
AuthenticationResult authResult;
try
{
authContext = new AuthenticationContext(authority, false);
authResult = await authContext.AcquireTokenAsync(resource, clientId, new Uri(returnUri),
new PlatformParameters(PromptBehavior.Auto, false));
}
Ces valeurs sont nulles à cause de la configuration ADFS? J'ai noté que le décodage de l'AccessToken renvoyé je peux lire l'information d'utilisateur. Mais je ne pense pas que le décodage du jeton JWT soit la bonne façon d'obtenir ces informations. Avez-vous une meilleure suggestion?
J'ai aussi vu des gens obtenir des informations en utilisant les réclamations, mais je ne sais pas exactement comment l'utiliser sur UWP, puisque tout l'échantillon que j'ai trouvé utilisé
ClaimsPrincipal claimsPrincipal = System.Threading.Thread.CurrentPrincipal as ClaimsPrincipal;
Mais System.Threading.Thread
n'est pas disponible sur UWP .
Pouvez-vous aider à comprendre comment puis-je obtenir le id_token et extraire les réclamations? – user2297037
Le 'id_token' devrait être capable d'acquérir via l'objet' authResult' ('authResult.IdToken') comme le code que vous partagez. Et pour extraire les revendications de jeton, vous pouvez utiliser 'System.IdentityModel.Tokens.Jwt'. Voici un [fil similaire] (https://stackoverflow.com/questions/38340078/how-to-decode-jwt-token) pour votre référence. –
Malheureusement 'authResult.IdToken' est nul ... – user2297037