Comment valider Azure AD jeton de sécurité?
Le code suivant me donne Azure AD security token
, j'ai besoin de valider ce jeton est valide ou pas. Comment atteindre cet objectif?
//Get OAuth token using client credentials
string tenantName = "mytest.onmicrosoft.com";
string authString = "https://login.microsoftonline.com/" + tenantName;
AuthenticationContext authenticationContext = new AuthenticationContext(authString, false);
//Config for OAuth client credentials
string clientId = "fffff33-6666-4888-a4tt-fbttt44444";
string key = "123v47o=";
ClientCredential clientCred = new ClientCredential(clientId, key);
string resource = "http://mytest.westus.cloudapp.azure.com";
string token;
Task<AuthenticationResult> authenticationResult = authenticationContext.AcquireTokenAsync(resource, clientCred);
token = authenticationResult.Result.AccessToken;
Console.WriteLine(token);
//How can I validate this token inside my service?
Vous devez vous connecter pour publier un commentaire.
Il y a deux étapes pour vérifier le jeton. Tout d'abord, vérifier la signature de la marque à garantir le jeton a été émis par Azure Active Directory. Deuxièmement, vérifier les déclarations du jeton basé sur la logique métier.
Par exemple, nous avons besoin de vérifier la
iss
etaud
réclamation si vous avez l'élaboration d'un seul locataire de l'app. Et vous avez aussi besoin de vérifier lenbf
pour assurer le jeton n'est pas expiré. Plus de réclamations que vous pouvez vous référer ici.Description ci-dessous est de ici sur le détail de la signature à vérifier. (Remarque: L'exemple ci-dessous utilise Azure AD v2 point de terminaison. Vous devez utiliser le point de terminaison qui correspond au point de terminaison de l'application cliente utilise.)
Ensuite, nous pouvons utiliser la
JwtSecurityTokenHandler
pour vérifier le jeton à l'aide de l'exemple de code ci-dessous:Et si vous utilisiez le OWIN composants de votre projet, il est plus facile de vérifier le jeton. Nous pouvons utiliser le code ci-dessous pour vérifier le jeton:
Ensuite, nous pouvons utiliser le code ci-dessous pour vérifier le "champ d'application" dans le jeton:
Et voici un exemple de code qui a protégé les API web avec Azure AD:
Protéger une API Web à l'aide de Porteur de jetons de Azure AD
ValidateAudience
,ValidateIssuer
,ValidateLifetime
) avant que quelqu'un copie-colle de votre échantillon et pense qu'il est bon d'aller pour la production, car il fonctionne.Validate
de méthode et d'où appelez-vous?Voulais juste ajouter à la Fei, la réponse de l'aide aux personnes .net Core 2.0
Vous aurez à modifier 2 lignes de la
Validate(string token)
méthode.Mais si vous n'êtes pas à l'aide de OWIN dans vos projets, il va être un peu dur ou au moins de temps..
Cet articleIci est une grande ressource.
Et parce que je n'ai pas grand-chose à ajouter sur le dessus, à l'exception du code.. Ici est quelque chose qui peut être utile pour vous:
Il y a quelques fonctions que j'utilise ici qui ne sont pas disponibles pour vous, ils sont auto-descriptif.