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.См. документацию и проблему .