Jenkins

【参考】

2020年06月04日時点での情報で掲載しています。

「Jenkins」との認証連携を設定します。

【注意】

  • Jenkinsのモバイルアプリケーションを利用する場合、IIJ IDサービスの認証では認証されません。詳しくは「https://mobilabsolutions.com/jenkins-tutorial/」をご覧ください。
  • JenkinsがSAMLで認証するキーは「ユーザID」です。
  • IIJ IDサービス内のユーザ属性にJenkinsの「ユーザID」と同一の値を保持しておく必要があります。

1. IIJ IDサービスにSAMLアプリケーションを登録する

1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。

2. 「アプリケーションを追加する」をクリックし、「カスタムアプリケーションを追加する」をクリックします。

3. 「SAMLアプリケーション」を選択し、「次に進む」をクリックします。

4. アプリケーション情報を入力し、「アプリケーションを追加する」をクリックします。

項目内容備考
アプリケーション名例)Jenkins必須
アプリケーションの説明例)

ソフトウェア開発のビルド・テスト・デプロイの自動化を支援。継続的インテグレーションと継続的デリバリーを促進

任意
アプリケーションロゴ(ファイルアップロード)任意
IDプロバイダの選択「アプリケーション専用のエンティティIDを利用」を選択必須
2. IIJ IDサービスのIDプロバイダ情報を確認する

1. 作成されたアプリケーションの「編集する」をクリックします。

2. 「IDプロバイダ情報」をクリックします。

3. 「メタデータ」の「ダウンロードする」をクリックし、IDプロバイダのメタデータをダウンロードします。

3. JenkinsにSAMLプラグインをインストールする
【参考】

既にSAMLプラグインがインストール済の場合は、本手順はスキップしてください。

1. Jenkinsに管理者ユーザでログインします。

2. 「Jenkinsの管理」をクリックします。

3. 「プラグインの管理」をクリックします。

4. 「利用可能」のタブをクリックします。

5. 「SAML」プラグインをチェックし、「再起動せずにインストール」をクリックします。

【参考】

「フィルター」の欄に「saml」と入力すると見つけやすくなります。

6. インストールが完了したら、「ページの先頭へ戻る」をクリックします。

【参考】

「Jenkinsの管理」の「プラグインの管理」の画面で「インストール済み」に「SAML Plugin」が存在していれば、インストールは完了しています。

4. JenkinsにIDプロバイダ情報を登録する

1. 「Jenkinsの管理」から「グローバルセキュリティの設定」をクリックします。

2. 「SAML 2.0」をクリックします。

【参考】

SAMLプラグインのインストールが完了していない状態では「SAML 2.0」は表示されません。

3. 「IdP Metadata」に手順2-3で取得したメタデータの内容を貼り付け、「Validate IdP Metadata」をクリックします。

【参考】

「Success」が表示されれば、メタデータが正しく登録されています。

4. 以下の項目を入力し、「保存」をクリックします。

項目内容
Username Attributehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
Email Attributehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
5. IIJ IDサービスのSAMLアプリケーションを設定する

1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。

2. 作成されたアプリケーションの「編集する」をクリックします。

3. 「フェデレーション設定」をクリックします。

4. 以下のとおり設定し、「変更を適用する」をクリックします。

項目内容備考
SAML基本情報





SAML情報を入力する「SAML情報を入力する」をチェック
シングルサインオンURL

http://[Jenkinsサーバのホスト名]/securityRealm/finishLogin

[Jenkinsサーバのホスト名]部分は、クライアントが到達可能な記述となります

エンティティ ID

http://[Jenkinsサーバのホスト名]/securityRealm/finishLogin

[Jenkinsサーバのホスト名]部分は、クライアントが到達可能な記述となります
NameIDフォーマット

urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress


検証後の遷移先(RelayState)(空欄)
アプリケーションのトップページURL

(空欄)


アサーションの署名アルゴリズム例)
RSA-SHA256

ユーザ識別子(NameID)の指定関連付けるユーザ属性例)
ID

Jenkinsとの連携では「関連付けるユーザ属性」の値は評価されません。「ID」を指定しておくことをおすすめします

属性値関連付け(ユーザ属性)http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name例)
Entitlements

タイプと一致する値を使用する
タイプ: Jenkin_ID

Jenkinsの「ユーザID」の値が格納されている属性を指定します
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

例)
通知先メールアドレス

プライマリの値を使用する

Jenkinsの「メールアドレス」の値が格納されている属性を指定します

【参考】

「アサーションの署名アルゴリズム」は連携先サービス側で指定などがない場合、デフォルト値の「RSA-SHA256」を選択してください。

「RSA-SHA256」を指定して動作しない場合及び連携先サービス側で明示的にそれ以外のものが指定されている場合は、「RSA-SHA512」、または「RSA-SHA1」に変更し、連携を確認してください。

【参考】

  • 「ユーザ識別子(NameID)」の指定は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
  • 「ユーザ識別子(NameID)」の指定した属性にユーザが値を保持していない場合は SAML連携は失敗します。
  • 「ユーザ識別子(NameID)」にID以外の複数の値を持つ属性で指定する方法は以下のとおりです。
    例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。

    • 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。
    • 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_ID」を指定します。

【注意】

  • 「ユーザ識別子(NameID)」としてID以外の属性を指定していると、IIJ IDサービスに対する更新処理でその属性の値が更新される場合があります。ただし、その更新は連携先サービスまで伝搬されないため、IIJ IDサービス側の属性の値が更新されると、連携していたアカウントに接続できなくなります。「ユーザ識別子(NameID)」としている属性の値が更新される場合は、連携先サービス側で紐づく属性(多くの場合、ユーザID)を忘れずに更新してください。
  • 以下の画像のように複数のタイプに「SaaS_ID」が設定されている場合、「ユーザ識別子(NameID)」に「SaaS_ID」を指定すると、サービスマニュアルに記載されているルールに基づいていずれかの単数値だけが採用されます。連携対象のサービスに管理者の意図しないアカウントがSAML連携される危険性があります。対象となる各ユーザにおいて、「ユーザ識別子(NameID)」として指定するタイプが複数個存在しないように注意してください。

【参考】

  • 「属性値関連付け(ユーザ属性)」は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
  • 「属性値関連付け(ユーザ属性)」で複数値を持つ属性での指定する方法は以下のとおりです。
    例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。
    • 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「abc」の場合は、「プライマリの値を使用する」をチェックします。
    • 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「1234」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_Attr1」を指定します。
    • 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「multi1」、「multi2」のように複数の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_MultiAttr1」を指定します。

【参考】

手順5-4で「http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name」の値にマッピングする場合、IIJ IDサービスの各ユーザに対する属性値の設定例は以下のとおりです。

5. 「利用者設定」をクリックします。

6. 「利用者を追加する」をクリックし、アプリケーションにシングルサインオンさせたいグループ及びユーザを指定します。

【参考】

利用者に登録していないユーザにもこのアプリケーションを利用させたい場合は、「アプリケーションへのログイン」の「編集」をクリックしします。

「利用者でないユーザも、アプリケーションへのログインを許可する」を選択し、「変更を適用する」をクリックします。