多个 withCredentials(Azure 服务主体)不工作

Multiple withCredentials (Azure Service Principal) not working

我必须注入 Azure 凭据以及其他内容。 我如何让它工作?

stage('provision') {
    withCredentials([
        [azureServicePrincipal('azsrvprincipaldev')],
        [$class: 'FileBinding', credentialsId: 'id_rsa', variable: 'RSA_PATH'],
        [$class: 'FileBinding', credentialsId: 'id_rsa.pub', variable: 'RSA_PUB_PATH']
        ]) {

        sh './jenkins.sh'
    }
}

错误:

java.lang.ClassCastException:
org.jenkinsci.plugins.credentialsbinding.impl.BindingStep.bindings expects 
class org.jenkinsci.plugins.credentialsbinding.MultiBinding but received class java.util.ArrayList

Caused: java.lang.IllegalArgumentException: Could not instantiate 
{bindings=[[@azureServicePrincipal(<anonymous>=azsrvprincipaldev)], 
{$class=FileBinding, credentialsId=id_rsa, variable=RSA_PATH}, 
{$class=FileBinding, credentialsId=id_rsa.pub, variable=RSA_PUB_PATH}]} 
for BindingStep(bindings:    
MultiBinding{AzureCredentialsBinding(credentialsId: String,   
clientIdVariable?: String, clientSecretVariable?: String,   
subscriptionIdVariable?: String, tenantIdVariable?: String)
... 

不要用额外的 [] 包裹 azureServicePrincipal()
这应该有效

stage('provision') {
    withCredentials([
        azureServicePrincipal('azsrvprincipaldev'),
        [$class: 'FileBinding', credentialsId: 'id_rsa', variable: 'RSA_PATH'],
        [$class: 'FileBinding', credentialsId: 'id_rsa.pub', variable: 'RSA_PUB_PATH']
        ]) {

        sh './jenkins.sh'
    }
}