Разрешение на авторизацию кода OAuth с PKCE, но для приложения, а не для пользователя

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

Мобильные приложения могут использовать грант OAuth Code Authorization плюс пробный ключ для обмена кодами (PKCE), который позволяет динамически генерировать секрет. Это замечательно, если вам нужна авторизация / аутентификация пользователя.

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

Похоже, что Code Authorization + PKCE будет работать отлично, если только экраны входа и согласия могут быть отключены. Просто верните код авторизации. Я надеялся найти способ сделать это в IdentityServer3, но не нашел.

Есть ли конфигурация или поток, который позволяет это? Или я делаю ошибку безопасности?

РЕДАКТИРОВАТЬ Кроме того, мне кажется, что использование PKCE должно позволить поток с двумя вызовами обратного канала, один для конечной точки авторизации, другой для конечной точки токена. По сути, Code Authorization без перенаправления браузера. Я знаю, что такого потока нет в спецификации, но я прав? Несмотря на это, остается вопрос, как авторизовать мобильное приложение, используя свою учетную запись, а не пользователя?

0 ответов

Другие вопросы по тегам