Потоки IdentityServer

IdentityServer поддерживает различные потоки OpenId Connect, которые определены в

Итак, что такое: неявный поток, поток учетных данных владельца ресурса, поток кода авторизации, поток учетных данных клиента, < сильная> настраиваемая поток и гибридная поток? Также какие из них являются потоками OAuth, а какие - потоками OpenID Connect?

Спасибо!




Ответы (4)


Я столкнулся с той же проблемой, в настоящее время работа все еще продолжается. когда я закончу документацию, я могу разместить ее здесь. пока: пожалуйста, проверьте черновик:

Дополните документацию IdentityServer разделом № 73 OIDC и OAuth2 Flows

Обновление: потоки OIDC и OAuth2

person Jawad Al Shaikh    schedule 23.04.2015
comment
Также см. Это введение в OAuth 2.0 от DigitalOcean. - person orad; 02.05.2016

Из первой ссылки по крайней мереPrivilage: и OAuth 2 Simplified Аарона Паретцки

Потоки решают, как токен ID (т. Е. Код авторизации) и токен доступа (т. Е. "Токен" ) клиенту возвращаются:

Поток кода авторизации: поток OAuth 2.0, в котором

  • код авторизации возвращается из конечной точки авторизации
  • и все токены (на втором этапе в обмен на код авторизации) возвращаются из конечной точки токена
  • Используется для вызовов на основе сервера (API), которые могут сохранять конфиденциальность своего секрета клиента. Позволяет повысить безопасность, пока никто не сможет получить доступ к «секрету клиента».

Неявный поток: поток OAuth 2.0, в котором

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

Гибридный поток: поток OAuth 2.0, в котором

  • код авторизации возвращается из конечной точки авторизации,
  • некоторые токены возвращаются непосредственно из конечной точки авторизации, а другие возвращаются (в качестве второго этапа в обмен на код авторизации) из конечной точки токена.
  • Используется там, где нужны оба потока.
person pashute    schedule 28.10.2015

смотрите спецификации - все уже записано:

http://openid.net/specs/openid-connect-core-1_0.html и http://tools.ietf.org/html/rfc6749

Кроме того, я недавно написал резюме, в котором разбито на разные типы приложений:

http://leastprivilege.com/2016/01/17/which-openid-connectoauth-2-o-flow-is-the-right-one/

person leastprivilege    schedule 16.04.2015
comment
Я знаю, но я искал более короткое описание. Я нашел это описание в твой блог очень полезен. - person orad; 17.04.2015
comment
Я также считаю, что это самая большая проблема с Identity Server, поскольку базовая информация о продукте ограничена. Примерно через месяц после внедрения фреймворка чрезвычайно подробные документы окажутся полезными, но кривая обучения не будет крутой, а вертикальной. - person Dillorscroft; 12.11.2015
comment
На самом деле я узнал больше об Identity Server из документации по реализации Auth0.com, а затем вернулся к Identity Server. - person Dillorscroft; 12.11.2015
comment
В документации также есть пробелы в том, как это согласуется с нативными мобильными приложениями. Я намерен реализовать с помощью Xamarin и опубликовать свои результаты в блоге. - person Dillorscroft; 12.11.2015
comment
Не стесняйтесь писать все это и дайте нам знать, чтобы мы могли ссылаться на них. Это не продукт, это OSS. Стонать легко. Улучшай сам. - person leastprivilege; 12.11.2015
comment
Ты прав. Я не должен стонать. Это отличный ресурс, надеюсь, я смогу внести свой вклад. - person Dillorscroft; 16.11.2015
comment
IdentityServer - один из лучших задокументированных проектов, с которыми мне приходилось работать. Здесь есть десятки простых примеров github.com/IdentityServer/IdentityServer3.Samples / дерево / мастер /. Спасибо @leastprivilege! - person Rob L; 20.01.2017

Потоки, определенные в OAuth2, - это всего лишь несколько способов для клиента получить access token от поставщика удостоверений. сервер; IdentityServer в этом случае. Понять потоки будет непросто, если вы полностью не поймете сущности, указанные в блок-схемах, например Resource Owner, User Agent и Resource Server. Краткое описание этих сущностей (особенно ролей) можно найти здесь .


Поток кода авторизации: выдает authorization code перед выдачей access token.

  • Клиент запрашивает authorization code.
  • IdentityServer Проверяет клиента и запрашивает у владельца ресурса разрешение на выдачу authorization code.
  • Затем клиент запрашивает access token с заданным authorization code
  • Сервер авторизации выдает access token прямо клиенту.

Неявный поток кода: выдает access token даже без указания authorization code.

  • Клиент запрашивает access token напрямую.
  • IdentityServer пропускает проверку клиента (в некоторых сценариях, частично), но все же просит владельца ресурса предоставить разрешение на выдачу access token
  • Этот поток никогда не выдает authorization code.

Неявный поток считается идеальным потоком для клиента, использующего языки сценариев, такие как javascript, поскольку клиенту не нужно отдельно запрашивать authorization code и access token, что, в свою очередь, сокращает один сетевой обход для клиент.


Поток учетных данных клиента: выдает access token без разрешения владельца ресурса.

  • Клиент запрашивает токен доступа напрямую.
  • IdentityServer проверяет клиента и сразу же выдает access token.

Это идеально, когда клиент также является владельцем ресурса, поэтому ему не нужны никакие разрешения авторизации вплоть до access token.


Поток владельца ресурса: выдает access token, если у клиента есть учетные данные владельца ресурса (например, идентификатор / пароль).

  • Клиент запрашивает access token напрямую.
  • IdentityServer проверяет клиента и удостоверяет личность владельца ресурса.
  • Если это действительно так, клиент получает access token немедленно.

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


Гибридный поток (поток OIDC): выдает authorization code и access token.

Это комбинация Authorization code flow и Implicit code flow. Вот почему он называется Hybrid.


Пользовательский поток

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

IdentityServer хорошо осведомлен о подобной ситуации и изначально поддерживает расширяемость. Шаблон фабрики, шаблон декоратора и IoC / DI упростят вам реализацию дополнительных функций на вашем IdentityServer.

person hina10531    schedule 04.08.2018