2015-02-16 5 views
0

Я хочу использовать грант Credentials клиента в oauth2 для обеспечения API.Может ли клиентский мандат предоставить токен доступа для отображения пользователю?

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

Это проблема? Я понимаю, что токен доступа с использованием разрешения на учетные данные клиента не должен находиться в контексте пользователя ... Неправильно ли это связывать его?

ответ

0

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

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

+0

Hi Hans - спасибо за это - причина, по которой я решил сделать это вне диапазона, состоит в том, что мы индивидуально контролируем тех, кого хотим использовать API. Кроме того, вызовы API, которые встречаются, будут выполняться cron-заданиями «система-система», а не требовать какого-либо взаимодействия с пользователем. Я не права использовать этот грант для этого подхода? Единственная причина, по которой я связываю client_credentials с конкретным пользователем, заключается в том, что каждый клиент имеет 1 администратор, который управляет данными для своего учреждения ... –

+0

, если вы можете аутентифицировать администратора на сервере авторизации, тогда вы можете выпустить токен обновления с помощью грант Кодекса, который даст вам то, что вы хотите; токены обновления можно использовать для получения новых токенов доступа, таких как учетные данные клиента, но разница в том, что вы установили связь между токеном и администратором внутри диапазона –