Может ли RestSharp получить токен доступа oauth2 от IdentityServer/DuendeServer для пользователя программным путем, если задано имя пользователя/пароль?

У нас есть сервер Duende для нашего пользовательского интерфейса, и пользователи вводят свое имя пользователя и пароль и получают токен доступа, который затем используется нашим приложением SPA для вызова API с токеном доступа, выданным нашим сервером идентификации.

Я нахожусь в ситуации, когда мне нужно вызвать тот же API из скрипта, и мне было интересно, есть ли у RestSharp какая-то возможность получить токен доступа, если предоставлена ​​определенная информация (возможно, адрес электронной почты/пароль пользователя и т. д., которые обычно вводятся на интерактивном веб-сайте ) ?

Я вижу, что в RestSharp есть несколько «аутентификаторов», связанных с OAuth, но в документации неясно, чего именно они достигают. Я также не вижу упоминания об адресе электронной почты и пароле.

Мне интересно, есть ли вариант, отличный от того, что я генерирую JWT в другом месте и поставляю его непосредственно в restsharp. Я был бы рад, если бы был программный способ генерировать токен непосредственно из IDP.

1 ответ

Документация RestSharp не скрывает, как работают аутентификаторы. Оба аутентификатора OAuth2 добавляют только необходимый заголовок или строку запроса, используя предоставленный вами токен, но не запрашивают токен.

Документация сервера Duende подробно объясняет, как получить токен на основе предоставленного пароля (который использует имя пользователя и пароль).

Хотя спецификация OAuth2 стабильна, у каждого поставщика API есть свои ограничения. Например, Twitter API v2 поддерживает только client_credentialsтип гранта. Поэтому создать универсальный клиент OAuth2 непросто.

Тем не менее, довольно легко изменить образец аутентификатора Twitter из документации и расширить модели запросов и ответов для поддержки конечной точки запроса токена сервера Duende.

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