web-dev-qa-db-fra.com

Comment authentifier l'utilisateur avec Azure Active Directory en utilisant OAuth 2.0?

J'ai une API REST écrite en C # et je dois m'authentifier avec un service Azure AD existant. J'ai actuellement le nom d'utilisateur et le mot de passe de l'utilisateur qui souhaite s'authentifier. J'ai besoin de m'authentifier avec Azure AD et recevoir un jeton d'accès du serveur.

Quelqu'un peut-il m'orienter vers des articles/tutoriels qui expliquent comment procéder?

16
COBOL

Vous devez éviter de gérer les informations d'identification des utilisateurs. Il y a de sérieuses implications de sécurité lors de la collecte des informations d'identification d'un utilisateur qui sont atténuées en utilisant OAuth 2.0 ou OpenID Connect pour obtenir un jeton sans gérer directement les informations d'identification. De plus, si vous avez votre propre interface utilisateur de collecte d'informations d'identification, alors vous pouvez constater que la connexion échoue à l'avenir si l'authentification multifacteur est activée. Dans ce cas, plus d'informations peuvent être nécessaires pour authentifier l'utilisateur que vous ne collectez, un mot de passe à usage unique par exemple. Si vous autorisez Azure AD à présenter l'expérience d'authentification via OAuth 2.0 ou OpenID Connect, vous êtes alors isolé de la méthode d'authentification spécifique utilisée. La collecte des informations d'identification Azure AD des utilisateurs est une mauvaise pratique à éviter si possible.

Je n'ai pas suffisamment de détails sur le scénario exact pour être sûr que l'exemple suivant s'applique, mais il fournira au moins un bon point de départ. Cet exemple montre comment créer une application native qui appelle une API REST qui peut ensuite appeler une ressource Azure de la manière la plus sûre possible.

https://github.com/AzureADSamples/WebAPI-OnBehalfOf-DotNet

Vous pouvez trouver ici de nombreux autres exemples qui peuvent être utilisés pour construire une solution pour votre scénario particulier.

https://github.com/AzureADSamples

Si vous donnez plus de détails, je peux donner des conseils plus spécifiques.

18
Rich Randall

Voir: http://www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/

Résumé: créer un identifiant utilisateur

UserCredential uc = new UserCredential(user, password);

Appelez l'une des fonctions AcquireToken () avec UserCredential

public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential);
public Task<AuthenticationResult> AcquireTokenAsync(string resource, string clientId, UserCredential userCredential);
4
dteviot