Токен Oauth 2 для учетных записей Active Directory
В прошлом я использовал Owin для создания конечной точки токена в моих проектах Mvc Web Api для предоставления токенов oauth 2.0 стипом гранта"Учетные данные пароля владельца ресурса ", где провайдер токенов доступа проверял бы таблицу пользователей базы данных, чтобы проверить достоверность предоставленных учетных данных. с помощью мобильного клиента (мультиплатформенное приложение, разработанное с помощью инструмента Visual studio для Cordova).
В этом проекте веб-интерфейс будет использоваться многоплатформенным мобильным приложением, используемым учетными записями домена Windows Active Directory.
Я хотел бы использовать Owin Oauth 2.0 для предоставления токена доступа этим пользователям, но я не знаю, как проверить действительность этих учетных данных.
То, что я думал, это поставить /token
конечная точка позади "basic authentication"
и в коде Access Token Provider получите пользователя от Identity, который, в случае использования аутентификации, должен автоматически создаваться конвейером Asp.net.
Это то, что может работать?
Знаете ли вы, что лучше использовать Oauth 2.0 для AD Windows Accounts?
Замечания:
Я также выясняю, может ли Active Directory самостоятельно предоставлять конечную точку Oauth 2.0.
2 ответа
Вот довольно хорошее пошаговое руководство по использованию служб федерации Active Directory для получения токена OAuth2. https://technet.microsoft.com/en-us/library/dn633593.aspx. Вам нужно будет перейти по всем ссылкам внизу, чтобы пройти весь обзор.
Обратите внимание, что это относится к использованию библиотеки аутентификации Windows Azure AD для.NET. Но согласно этой документации эта библиотека используется как для Azure Active Directory, так и для локальной Active Directory.
Что касается рабочего процесса, после аутентификации вы сможете получить и представить токен-носитель для вашего WebAPI. Затем ваш WebAPI "проверяет подпись токена, чтобы убедиться, что он был выпущен AD FS, проверяет, является ли токен все еще действительным и не истек ли, и, возможно, также может проверить другие утверждения в токене. На этом этапе клиент либо авторизован, и запрашиваемая информация отправлена в ответе, либо они не авторизованы, и данные не будут отправлены. " - https://technet.microsoft.com/en-us/library/dn633593.aspx
Вы можете использовать ADFS 3.0 поверх AD, который предоставит вам возможности сервера авторизации OAuth 2.0: http://blog.scottlogic.com/2015/03/09/OAUTH2-Authentication-with-ADFS-3.0.html
Размещение конечной точки токена за "базовой аутентификацией" не поможет вам, потому что вы будете аутентифицировать клиента на конечной точке токена, а не пользователя. Вы можете поставить конечную точку авторизации за "базовой аутентификацией".