2014-05-19 6 views
7

Я новичок в OAuth 2.0.Как начать с учетных данных клиента OAuth для защиты WebApi с использованием OWIN Oauth?

Я честно прочитал OAuth 2.0 doc, и я увидел, что существует четыре типа методов получения авторизации.

Типы получения разрешения:

1.Implicit Grant 
2.Resource Owner Password Credentials Grant 
3.Client Credentials Grant 
4.Authorization Code Grant 

В моем случае, у меня есть приложение-клиент, владелец ресурса, сервер ресурсов и сервер авторизации.

сервер ресурсов это сайт, где владелец ресурса регистры с его/ее полномочий.

Приложение для клиентов является сторонним сайтом, который регистрируется на сервере ресурсов и получает учетные данные клиентского приложения для доступа к нему в будущем.

Сервер авторизации проверяет учетные данные клиента из клиентского приложения и предоставляет токен доступа клиентскому приложению.

Рассмотрит сервера ресурсов как "www.serversite.com", авторизации сервер, как "www.authserver.com" и клиентское приложение, как "www.clientapp.com".

Flow:

Шаг 1: также сделать предположение, что www.serversite.com как сайт платежный шлюз и клиент должен интегрировать "www.serversite.com" в «WWW .clientapp.com "для создания, выполнения и возврата платежей.

Шаг 2: Таким образом, клиент «www.clientapp.com» создает приложение на сервере «www.serversite.com» и получает учетные данные API.

Шаг 3: Используя эти учетные данные API, клиент «www.clientapp.com» делает запрос доступа к токенам на сервер auth «www.authserver.com».

Этап 4: Если учетные данные API из клиентского приложения действительны, то сервер auth предоставляет токен доступа.

Шаг 5: С помощью этого токена доступа клиентское приложение запрашивает сервер ресурсов для следующих операций, таких как создание платежей, а также выполнение платежей.

Мои вопросы:

Я использую ASP.NET Web API for authorization server и использование OWIN.OAuth для создания маркера доступа, обновить маркер, авторизацию и все необходимые питания для авторизации клиентского приложения.

Но, в этой ссылке (OWIN OAuth 2.0 Authorization Server), я обнаружил, что веб-апите авторизовать приложение клиента с помощью "Resource Owner Password Credentials Grant" и пробы, для реализации Owin.OAuth в Web API является большим, но у меня есть много путаницы в роуминге в моем разум.

  • Какой способ получения разрешения подходит для моего процесса? (Client Credentials потока или владелец ресурса Пароль Полномочия потока)

  • Как реализовать Client Credentials типа Даруй с использованием ASP.NET Web API ( Owin OAuth)?

  • Также укажите некоторые примеры или ссылки, которые могут быть полезны для меня?

Заранее благодарен.

ответ

3

Theres пример того, как приступить к работе на сайте asp.net, а именно здесь:

http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server

Цитирую:

private Task GrantClientCredentails(OAuthGrantClientCredentialsContext context) 
{ 
var identity = new ClaimsIdentity(new GenericIdentity(
    context.ClientId, OAuthDefaults.AuthenticationType), 
    context.Scope.Select(x => new Claim("urn:oauth:scope", x)) 
    ); 

context.Validated(identity); 

return Task.FromResult(0); 
} 

Очевидно, что вам нужно будет идти вперед и проверить фактический идентификатор/секрет клиента существует, возможно, в локальной базе данных до того, как вы перейдете к этому вопросу, и установите контекст для проверки.

С точки зрения определения, какой поток использовать, вы должны спросить себя, если приложение запрашивает доступ к вашим API-интерфейсам от имени фактического пользователя, тогда вам нужно использовать владельца ресурсов, однако, если самому приложению требуется доступ то клиентские полномочия - это путь.

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

+0

спасибо. Ваш ответ был только в том, что я мог найти интернет-поиск за последние 2 недели !! –

+0

@siddhantKumar проблем нет. – gdp

Смежные вопросы