GitLab OpenID id_token отсутствует заявка профиля пользователя

Я пытаюсь использовать GitLab (Self Hosted CE Edition) в качестве OpenID Auth Provider. Я подписался на https://docs.gitlab.com/ee/integration/openid_connect_provider.html и https://docs.gitlab.com/ce/api/oauth2.html для проверки потока вручную.

Я создал приложение GitLab для генерации идентификатора клиента и секрета. Я также могу получить код авторизации успешно, нажав https://gitlab.example.com/oauth/authorize?client_id=APP_ID&redirect_uri=REDIRECT_URI&response_type=code&state=YOUR_UNIQUE_STATE_HASH&scope=openid

Я также могу получить id_token(JWT), вызвав POST на https://gitlab.example.com/oauth/token?client_id=ID&client_secret=SECRET&code=CODE&grant_type=authorization_code&redirect_uri=http://localhost

Но когда я декодирую id_token на jwt.io я не могу увидеть все утверждения профиля пользователя, упомянутые в ссылке на документы. Ниже приведен пример полезной нагрузки JWT, которую я получаю

 {
  "iss": " https://gitlab.example.com/ ",
  "sub": "768d4eeae122ca6655c9127487d9c4cd85b079796d35d33753b3c15b93486044",
  "aud": "c3be56f955c74f0601683654df61ed3f74774902e2fb6da7ce05415b8a30e1d7",
  "exp": 1521463699,
  "iat": 1521463579,
  "auth_time": 1521456265
} 

Может кто-нибудь помочь, пожалуйста, как я могу получить различные атрибуты профиля пользователя в claims как электронная почта, имя и т. д.?

Я использую GitLab Community Edition 10.5.0 34d5766

1 ответ

Этот вариант использования больше не будет применяться в GitLab 16.4 (сентябрь 2023 г.):

Установите id_token глобально и исключите настройку для отдельных заданий.

В GitLab 15.9 мы объявили об отказе от старых версий веб-токенов JSON в пользу .

К сожалению, рабочие места пришлось модифицировать индивидуально, чтобы приспособить это изменение.

Чтобы обеспечить плавный переход на , начиная с GitLab 16.4, вы можете установитьid_tokensкак глобальное значение по умолчанию в.gitlab-ci.yml.
Эта функция автоматически устанавливает конфигурацию для каждого задания.
Задания, использующие аутентификацию OpenID Connect (OIDC), больше не требуют настройки отдельного файла .

Использовать id_tokenи OIDC для аутентификации в сторонних сервисах .
Требуемое подключевое слово используется для настройкиaudпретензия на JWT.

См. документацию и проблему .

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