2016-06-14 3 views
0

Существует sample implementation сервера авторизации OAuth 2.0 и пример рабочего процесса для каждого типа гранта.OAuth 2.0 Code Grant flow

IETF имеет спецификацию OAuth 2.0 для Code Grant Flow. Когда вы посмотрите на шаги «D» & «E» в графике потока грантов IETF, они, похоже, не реализованы в реализации примера (первая ссылка).

Где шаги D & E в образце реализации? Я знаю, что это примерная реализация, которая не готова к производству, но я предположил, что она будет следовать спецификациям OAuth 2.0.

В образце приложения клиент получает код, но не передает его на сервер OAuth для получения токенов. На самом деле он получает жетоны, включая код уже в шаге 3.

enter image description here

ответ

0

Хорошо, я скачал исходники Microsoft.Owin и отлажен через код.

Клиентские клиенты DotnetOAuth отправляют запрос маркера под капот. Я не мог видеть это при использовании Fiddler, потому что он использует объект WebRequest и поэтому не попадает в Fidddler ootb!

Маркера запрос содержит маркер кода и он также получает подтверждено

Это будет проверенным в

ReceiveAuthenticationToken EventHandler.

Маркер создается код здесь:

private void CreateAuthenticationToken(AuthenticationTokenCreateContext ctx) 
{ 
    var code = Guid.NewGuid().ToString("n") + Guid.NewGuid().ToString("n"); 
    ctx.SetToken(code); 
    _authenticationCodes[ctx.Token] = ctx.SerializeTicket(); <-- stored in a concurrentDictionary as the key for the auth ticket, for demonstration purposes only 
// delete the entry, must only be used once 
} 
Смежные вопросы