Как аутентифицировать пользователя в Azure Active Directory с помощью OAuth 2.0?

У меня есть REST API, написанный на C#, и мне нужно пройти аутентификацию в существующей службе Azure AD. В настоящее время у меня есть имя пользователя и пароль пользователя, желающего пройти аутентификацию. Мне нужно пройти проверку подлинности с помощью Azure AD и получить токен доступа с сервера.

Может кто-нибудь указать мне направление некоторых статей / учебных пособий, которые объясняют, как это сделать?

2 ответа

Вы должны избегать обработки учетных данных пользователей. Существуют серьезные последствия для безопасности при сборе учетных данных пользователей, которые смягчаются с помощью OAuth 2.0 или OpenID Connect для получения токена без непосредственной обработки учетных данных. Кроме того, если у вас есть собственный пользовательский интерфейс для сбора учетных данных, возможно, в будущем произойдет сбой входа, если включена многофакторная проверка подлинности. В этом случае может потребоваться больше информации для аутентификации пользователя, чем вы собираете, например одноразовый пароль. Если вы разрешите Azure AD предоставлять возможность проверки подлинности через OAuth 2.0 или OpenID Connect, вы изолированы от конкретного используемого метода проверки подлинности. Сбор учетных данных пользователей Azure AD - это плохая практика, которую следует избегать, если это вообще возможно.

У меня недостаточно подробностей о точном сценарии, чтобы быть уверенным, что приведенный ниже пример применим, но, по крайней мере, он послужит хорошей отправной точкой. В этом примере показано, как создать собственное приложение, которое вызывает API REST, которое затем может вызывать ресурс Azure наиболее безопасным способом.

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

Здесь вы можете найти множество других примеров, которые можно использовать для построения решения для вашего конкретного сценария.

https://github.com/AzureADSamples

Если вы предоставите более подробную информацию, я могу дать более конкретные указания.

Смотрите: http://www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/

Сводка: создание UserCredential

UserCredential uc = new UserCredential(user, password);

Вызовите одну из функций AcquireToken() с помощью UserCredential

public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential);
public Task<AuthenticationResult> AcquireTokenAsync(string resource, string clientId, UserCredential userCredential);
Другие вопросы по тегам