2017-09-24 2 views
0

J'ai un Asp.Net Core 2.0 WebAPI, qui exige que toutes les demandes à authentifier et il utilise le jeton de validation JWT comme ceci:Comment valider le jeton JWT sur plusieurs annuaires actifs Azure (ClientIds)?

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.Authority = this._configuration.GetValue<string>("Authority"); options.Audience = this._configuration.GetValue("ClientId"); }); ... app.UseAuthentication();

J'ai aussi deux applications clientes: Angular4 application Web et Web api .

Les trois applications ont leur propre enregistrement d'application AAD = chacune a un ID client différent mais toutes sont sur le même locataire (autorité).

Est-il possible de configurer l'application Web Api, elle valide le jeton contre plus d'un AAD (le jeton peut être généré par trois AAD différents = trois ID client différents)? Je sais que je peux générer un jeton sur le client en utilisant le flux 'client_credentials' et utiliser ce jeton pour faire un appel Api, mais je devrais faire face à un rafraîchissement de jeton etc. Donc, je me demande juste s'il y a plus facile façon.

Merci.

Répondre

0

Vous n'avez pas besoin de faire attention aux différents identifiants client. Quel que soit le client, lorsque vous acquérez un jeton d'accès pour appeler votre API web sécurisée par AAD, la revendication audience dans le jeton d'accès doit être la même: ID d'application URI que vous avez enregistré pour l'application API. Le côté de l'API doit valider que la revendication d'audience dans le jeton d'accès correspond à l'ID d'application URI de l'API Web, peu importe le client qui envoie la demande d'accès.