oauth неявное предоставление vs разрешение на предоставление кода?

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

  1. Является ли поток неявного выделения главным образом используемым передними приложениями для аутентификации пользователя?
  2. Требуется ли для потока неявно предоставлять поток client_id, имя пользователя и пароль для аутентификации, другими словами, client_secret никогда не отправляется?
  3. Является ли авторизация кодом только краткосрочный токен?
  4. После обмена авторизационным кодом на токен доступа, как долго клиент может получить доступ к учетной записи пользователя? В частности, если клиент является длительным сценарием, нужно ли пользователю проверять подлинность при каждом запуске скрипта? Или мы можем предположить, что после того, как пользователь санкционировал один раз, когда клиент имеет разрешение на доступ к пользователю, когда ему когда-либо понадобится (если пользователь не отменяет доступ), и как таковой ему просто нужно пройти аутентификацию с использованием учетных данных клиента?
  5. В чем преимущество использования потока кода авторизации над неявным потоком?
  6. Нужен ли серверу ресурсов идентификатор клиента?

Спасибо

+1
источник поделиться
2 ответа

Хотя jwilleke отвечает на большинство вопросов, которые у вас есть, я отвечу на ваши конкретные вопросы,

  1. Неявный поток предназначен для клиентов, которые не имеют возможности выполнять запрос маркера. Из спецификации OAuth 2.0 - 4.2 раздела

Тип неявного гранта используется для получения токенов доступа (он не поддерживает выдачу токенов обновления) и оптимизирован для общедоступных клиентов, которые, как известно, работают с определенным URI перенаправления. Эти клиенты обычно реализуются в браузере с использованием языка сценариев, такого как JavaScript.

  1. Он используется государственными клиентами. У них нет секретности клиента. Это связано с тем, что они не могут защитить такой секрет, поскольку они работают в браузере.

  2. Код авторизации может иметь срок службы от нескольких секунд (30 секунд) до нескольких минут (2 минуты). По сравнению с другими токенами они недолговечны.

  3. Это зависит от времени жизни токена доступа. Если срок действия задачи и токена заканчивается, вам нужно будет получить новый токен доступа для авторизации. Но если ваш конкретный сервер устанавливает сеанс, он может иметь длительный срок службы, чем токен доступа.

  4. Одним из преимуществ является токен обновления. Его можно использовать для обновления токена доступа без взаимодействия с конечным пользователем (новый логин). Также в зависимости от реализации сервера OAuth вы можете получить токены доступа с разными сроками службы. Например, сервер авторизации может выдавать краткосрочные токены доступа для неявного потока из-за того, что он используется публичным клиентом.

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

+1
источник

OAuth 2.0 Authorization Framework (RFC 6749) подразумевает, что:

Неявный поток подходит только для приложений OAuth Client, которые основаны на браузере или JavaScript NOT Mobile Devices или других приложений, которые могут использовать грант кода авторизации

Тип неявного гранта используется для получения токенов доступа (он не поддерживает выдачу токенов обновления) и оптимизирован для общедоступных клиентов, которые, как известно, работают с определенным URI перенаправления.

См. Разделы 1.3.2 и 9 для фона по использованию неявного гранта. См. Разделы 10.3 и 10.16 для важных соображений безопасности при использовании скрытого гранта.

При использовании неявного типа гранта токен доступа передается в фрагменте URI, который может передавать его неавторизованным сторонам.

-jim

+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос