Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

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

https://github.com/AzureADSamples

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

Ответ 2

Смотрите: 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);