スピンネーカーでジェンキンを次のように設定し、スピンネーカーパイプラインを設定しました。
_ jenkins:
# If you are integrating Jenkins, set its location here using the baseUrl
# field and provide the username/password credentials.
# You must also enable the "igor" service listed separately.
#
# If you have multiple jenkins servers, you will need to list
# them in an igor-local.yml. See jenkins.masters in config/igor.yml.
#
# Note that jenkins is not installed with Spinnaker so you must obtain this
# on your own if you are interested.
enabled: ${services.igor.enabled:false}
defaultMaster:
name: default
baseUrl: http://server:8080
username: spinnaker
password: password
_
しかし、スピンネーカーパイプラインを実行しようとすると、次のエラーが表示されます。
Exception ( Start Jenkins Job ) 403 No valid crumb was included in the request
最後に、この投稿は、パンくずの問題をなくすのに役立ちましたが、それでもジェンキンスをCSRF攻撃から保護しています。
基本的に、最初に認証を使用してクラムを要求し、次に認証とともにヘッダーとしてクラムを使用してPOST api呼び出しを発行する必要があります。
これは私がやった方法です、
curl -v -X GET http://jenkins-url:8080/crumbIssuer/api/json --user <username>:<password>
応答は、
{
"_class":"hudson.security.csrf.DefaultCrumbIssuer",
"crumb":"0db38413bd7ec9e98974f5213f7ead8b",
"crumbRequestField":"Jenkins-Crumb"
}
次に、POST apiに上記のクラム情報が含まれます。
curl -X POST http://jenkins-url:8080/job/<job-name>/build --user <username>:<password> -H 'Jenkins-Crumb: 0db38413bd7ec9e98974f5213f7ead8b'
Crumbはアクセストークンに他なりません。以下は、パンくずを取得するためのAPIです。
https://jenkins.xxx.xxx.xxx/crumbIssuer/api/json
// jenkinsのURLに置き換えて、郵便配達員またはrest-apiの呼び出し元でGET呼び出しを行います。
これにより、次のような出力が生成されます。
{
"_class": "hudson.security.csrf.DefaultCrumbIssuer",
"crumb": "ba4742b9d92606f4236456568a",
"crumbRequestField": "Jenkins-Crumb"
}
以下に詳細とリンクがあります: ジェンキンスのクラム発行者へのリクエスト方法 ジェンキンスwikiページ: https://wiki.jenkins-ci .org/display/jenkins/remote + access + api
Rest-api呼び出しを介して同じを呼び出している場合は、以下のリンクを確認してください。jenkins-crumbを使用して残りの呼び出しを呼び出す方法が説明されています。
https://blog.dahanne.net/2016/05/17/how-to-update-a-jenkins-job-posting-config-xml/
例:
curl -X POST http://anthony:anthony@localhost:8080/jenkins/job/pof/config.xml --data-binary "@config.xml" -data ".crumb=6bbabc426436b72ec35e5ad4a4344687"
Jenkinsの管理=>グローバルセキュリティの構成に進みます。
次に、「クロスサイトリクエストフォージェリエクスプロイトの防止」のチェックを外します