Для моего приложения я планирую использовать oauth2 Resource Owner Password Credential Grant
с сервером OIDC.
Так что я думаю, что я немного запутался в процессе.
Так что, как я понимаю, я должен вернуть id_token
вместе с access
маркер, как когда мы используем Password
если мы пропустим этап авторизации — правильно ли я понимаю?
Большинство примеров в Интернете, кажется, имеют в виду получение id_token
вместе с запросом авторизации, а не запросом токена доступа … Пожалуйста, помогите.
Редактировать: я был бы признателен за конструктивную критику, а не просто отрицательный голос.
Предоставление пароля для владельца ресурса (ROPCG) — это тип гранта, определенный в OAuth 2.0 framework. И идентификатор токена определяется Протокол OpenID Connect (РСИН). OIDC является расширением (построенным поверх) OAuth 2.0, поэтому он наследует большинство вещей от OAuth 2.0
Если вы проверите спецификацию OAuth 2.0, вы увидите, что ROPCG пропускает запрос авторизации. Это делается как получение гранта конечным пользователем (владельцем ресурса) через само клиентское приложение (для потока аутентификации или неявного потока это выполняется сервером аутентификации). Таким образом, токены получают напрямую через конечную точку токена сервера авторизации. Так что да, он пропускает этап авторизации, но клиент выполняет получение гранта конечного пользователя.
Хорошо, теперь идентифицируем токен с грантом ROPCG. Это зависит от того, какой провайдер вы используете. Хотя в спецификации OIDC не упоминается поток ROPCG, поставщики удостоверений могут выдавать токены id с ответом токена. Это также допускается спецификацией OAuth 2.0. Так что, если ваш провайдер идентификации (сервер авторизации) поддерживает это, вы можете получить идентификатор токена из ответа токена.
Других решений пока нет …