CloudFoun dry Вход в CLI не работает (учетные данные были отклонены, повторите попытку) - PullRequest
0 голосов
/ 13 февраля 2020

До сих пор мне всегда удавалось успешно войти в систему через sso.

cf login -a url --sso

Мне нужен другой способ входа в систему для сценария конвейера, и я попробовал следующую команду.

cf login [-a API_URL] [-u USERNAME] [-p PASSWORD] [-o ORG] [-s SPACE]

Эта команда не работает ни с моим пользователем, ни с техническим пользователем, которому были назначены все необходимые роли (MDA). Я получаю следующее сообщение.

API endpoint: url

Password>
Authenticating...
Credentials were rejected, please try again.

Кто-нибудь знает, как решить эту проблему? Или, может быть, альтернатива для создания задачи gradle, например, которая может быть выполнена в конвейере jenkins. В конце я хочу автоматизировать развертывание (в облаке) артефакта с помощью моего конвейера Jenkins.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Использование --sso и -u / -p не выполняет одно и то же в бэкэнде, и нет гарантии, что пользователь, который может войти в систему через SSO, также настроен для входа в систему как пользователь, хранящийся непосредственно в UAA , UAA имеет несколько источников, из которых могут быть загружены пользователи, такие как SAML, LDAP и внутренние в UAA. Когда вы используете флаг --sso, вы обычно входите через пользователя от поставщика SAML вашей компании. Когда вы используете флаги -u / -p, это, как правило, LDAP или UAA, что-то, что UAA проверяет напрямую.

Для того, чтобы то, что вы пытаетесь сделать, работало, вам нужно иметь доступного пользователя. с происхождением в SAML (для --sso) и пользователем в происхождении LDAP или UAA (внутренним), и технически это будут два отдельных пользователя (несмотря на то, что они могут иметь одинаковые учетные данные).

В любом случае, если вы обычно входите в систему с флагом --sso и хотите автоматизировать работу, вам действительно нужно получить клиента UAA, для которого установлен тип предоставления учетных данных клиента. Затем вы можете использовать cf auth CLIENT_ID CLIENT_SECRET --client-credentials для автоматизации входа в систему.

Как правило, вы не хотите, чтобы ваша учетная запись пользователя в любом случае была привязана к конвейерам и автоматизированным сценариям. Если вы покидаете компанию, и ваш пользователь деактивируется, то все ломается :) Вы хотите служебную учетную запись, и это в основном клиент, которому разрешен тип предоставления учетных данных клиента в UAA.

Надеюсь, это поможет!

0 голосов
/ 14 февраля 2020

Вы указали —sso flag, поэтому вы не должны видеть запрос пароля. Вместо этого вам нужно дать URL для получения токена.

Возможно, ваш CF был неправильно настроен и еще не поддерживает SSO. Я попытался исправить CLI CL, чтобы избежать этого, но он был странным образом отклонен https://github.com/cloudfoundry/cli/pull/1624

Попробуйте исправить установку CF (для этого нужно указать некоторые подсказки) или пропустить флаг —sso использование.

...