с Keycloak? Если да, то каким образом обходили проблему авторизации при попытки сделать pull из репозитория?
В работе web-морды + Keycloak проблем нет.
За ранее спасибо.
не уверен в корректности, но может направит в нужном направлении: Если в Вашем случае web-интерфейс Nexus с Keycloak работает корректно, но возникает проблема с авторизацией при выполнении pull-запросов через CLI, это связано с тем, что по умолчанию Nexus может не поддерживать JWT-токены от Keycloak для аутентификации командной строки. Вот несколько рекомендаций для решения этой задачи: 1. Проверка настроек авторизации в Nexus: Убедитесь, что Nexus настроен для работы с Keycloak через OIDC (OpenID Connect) или JWT Authentication Realm. В настройках Nexus убедитесь, что активирован OIDC realm (если поддерживается вашей версией Nexus). Это позволит Nexus корректно обрабатывать токены, которые получает от Keycloak. 2. Настройка токенов Keycloak для CLI: CLI-инструменты часто используют базовую аутентификацию, тогда как Keycloak по умолчанию использует Bearer-токены. Чтобы обойти эту проблему, можно: - Сгенерировать специальный API-токен для CLI-доступа или использовать client credentials. - В Keycloak создайте клиента с типом confidential и установите для него Direct Access Grants Enabled, чтобы можно было запросить токен от имени пользователя через client_id и client_secret. 3. Получение токена через командную строку: После настройки клиента выполните запрос к Keycloak, чтобы получить токен для аутентификации. Это можно сделать командой curl, пример ниже: curl -X POST "https://<Ваш_домен_Keycloak>/auth/realms/<Ваш_realm>/protocol/openid-connect/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id=<Ваш_client_id>" \ -d "client_secret=<Ваш_client_secret>" \ -d "grant_type=password" \ -d "username=<Ваш_пользователь>" \ -d "password=<Ваш_пароль>" Ответ от Keycloak будет содержать access_token, который можно использовать для pull-запросов. 4. Передача токена в Nexus CLI: После получения токена, его нужно передавать в запросах к Nexus. Например, можно использовать команду curl для pull-запросов, добавив Authorization заголовок: curl -u "<Ваш_пользователь>:<Ваш_API_токен>" -H "Authorization: Bearer <Ваш_access_token>" \ https://<Ваш_домен_Nexus>/repository/<название_репозитория>/<путь_к_артефакту> 5. Альтернативный вариант - Basic Auth: Если использование Bearer-токенов вызывает сложности, рассмотрите вариант с Basic Auth. В Keycloak можно настроить парольные политики, чтобы CLI мог авторизовываться с логином и паролем, используя basic authentication напрямую в Nexus, что может быть проще. Эти шаги помогут настроить авторизацию pull-запросов с использованием Keycloak в Nexus.
привет, подскажите, как вы включили поддержку oidc, у вас pro версия nexus?
Привет, Нет, у нас бесплатная версия. Настроили sso по oidc через keycloak + oauth2-proxy
мы настраивали через плагин от flytreeleft, маленечко дописали его. У него есть особенность - под большими нагрузками он будет копить и спавнить много сессий. Это фиксится программно)
Обсуждают сегодня