Authentication CloudFoundry CLI登录不工作(凭据被拒绝,请重试)

Authentication CloudFoundry CLI登录不工作(凭据被拒绝,请重试),authentication,jenkins,gradle,command-line-interface,cloud-foundry,Authentication,Jenkins,Gradle,Command Line Interface,Cloud Foundry,到目前为止,我始终能够通过sso成功登录 cf login -a url --sso 我需要另一种方法来登录管道脚本,并尝试了以下命令 cf login [-a API_URL] [-u USERNAME] [-p PASSWORD] [-o ORG] [-s SPACE] 此命令不适用于我的用户,也不适用于已分配所有必要角色(MD)的技术用户。我得到以下信息 API endpoint: url Password> Authenticating... Credentials were

到目前为止,我始终能够通过sso成功登录

cf login -a url --sso
我需要另一种方法来登录管道脚本,并尝试了以下命令

cf login [-a API_URL] [-u USERNAME] [-p PASSWORD] [-o ORG] [-s SPACE]
此命令不适用于我的用户,也不适用于已分配所有必要角色(MD)的技术用户。我得到以下信息

API endpoint: url

Password>
Authenticating...
Credentials were rejected, please try again.
有人知道如何解决这个问题吗? 或者,也可以选择创建gradle任务,例如,可以在jenkins管道中执行。
最后,我想用我的Jenkins管道自动化工件的部署(到云)。

您提供了-sso标志,因此您不应该看到密码提示。相反,应该为您提供url以获取令牌

可能您的CF配置错误,不支持SSO。我试图修复CF CLI以避免出现这种情况,但奇怪的是,它被拒绝了

尝试修复您的CF安装(它需要提供一些提示),或者跳过-sso标志的使用。

使用
--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\u ID CLIENT\u SECRET--CLIENT credentials
自动登录


通常,您不希望您的用户帐户被绑定到管道和自动脚本。如果您离开公司,您的用户被停用,那么一切都会中断:)您想要一个服务帐户,这基本上是一个在UAA中使用客户端凭据授予类型启用的客户端。

可能的原因可能是存在多个UAA源,如果您的用户没有在UAA的默认源中创建,然后必须使用cf auth命令并提供源名称作为身份验证的一部分