web-dev-qa-db-fra.com

Oauth 2 jetons pour les comptes Active Directory

J'ai utilisé Owin dans le passé pour créer un point de terminaison de jeton dans mes projets Mvc Web Api pour fournir oauth 2.0 tokens avec " Resource Owner Password Credentials " grant type où le fournisseur de jetons d'accès vérifierait une table d'utilisateurs de base de données pour vérifier la validité des informations d'identification fournies par le client mobile (application multiplateforme développée avec Visual studio tool pour Cordova).

Dans ce projet, l'API Web sera consommée par une application mobile multiplateforme utilisée par les comptes de domaine Windows Active Directory

Je voudrais utiliser Owin Oauth 2.0 pour accorder un jeton d'accès à ces utilisateurs mais je ne sais pas comment vérifier la validité de ces informations d'identification.

Ce que je pensais, c'était de mettre le /token point final derrière "basic authentication" et dans le code du fournisseur de jetons d'accès obtenir l'utilisateur de l'identité qui, en cas d'utilisation authentifiée, devrait être créée automatiquement par le pipeline Asp.net.

Est-ce quelque chose qui pourrait fonctionner?

Connaissez-vous une meilleure idée d'utiliser Oauth 2.0 pour les comptes AD Windows?

Remarque:

J'étudie également si Active Directory est en mesure de fournir un point de terminaison Oauth 2.0 par lui-même.

17
systempuntoout

Voici une très bonne procédure pas à pas sur l'utilisation des services de fédération Active Directory pour obtenir un jeton OAuth2. https://technet.Microsoft.com/en-us/library/dn633593.aspx . Vous devrez suivre tous les liens en bas pour obtenir la procédure complète.

Notez qu'il fait référence à l'utilisation de Bibliothèque d'authentification Windows Azure AD pour .NET . Mais selon cette documentation, cette bibliothèque est utilisée pour Azure Active Directory et Active Directory local.

Quant au workflow, une fois authentifié, vous pourrez obtenir et présenter un token porteur à votre WebAPI. Votre WebAPI "valide ensuite la signature du jeton pour vous assurer qu'elle a été émise par AD FS, vérifie si le jeton est toujours valide et n'a pas expiré et peut également valider d'autres revendications du jeton. À ce stade, le client est soit autorisée et les informations demandées sont envoyées dans la réponse, soit elles ne sont pas autorisées et aucune donnée ne sera envoyée. " - https://technet.Microsoft.com/en-us/library/dn633593.aspx

11
Brandon O'Dell

Vous pouvez utiliser ADFS 3.0 en plus de AD, ce qui vous fournirait la fonctionnalité OAuth 2.0 Authorization Server: http://blog.scottlogic.com/2015/03/09/OAUTH2 -Authentication-with-ADFS-3.0.html

Placer le point de terminaison du jeton derrière "l'authentification de base" ne vous aide pas car vous authentifieriez le client sur le point de terminaison du jeton, pas l'utilisateur. Vous pouvez cependant mettre le point de terminaison d'autorisation derrière "l'authentification de base".

8
Hans Z.