JenkinsにSAML認証を設定する方法
schedule 2021/09/06 refresh 2023/11/08
今回は、JekinsとのSAML認証でのシングルサイン設定を行ってみようと思います。
Jenkinsのプラグインマネージャを検索するとSAML プラグインがありますので、このプラグインを使用しSeciossLinkとの連携を行います。
Jenkins側の設定手順
JenkinsでSAMLプラグインのインストール
プラグインマネージャーの利用可能タブで、「SAML」を検索すると以下画像のようにSAMLプラグインが表示されますので、「ダウンロードして再起動後にインストール」ボタンよりインストールを行います。
JenkinsでSAML2.0の有効化
ダッシュボードのグローバルセキュリティの設定を開き、ユーザー情報から、SAML2.0を選択します。
設定項目がいろいろありますが、以下のように設定していきます。
項目 | 説明 |
IdP Metadata | SeciossLinkのIdPメタデータを記入します。 SeciossLinkのシングルサインオン>SAML>設定よりIdP メタデータをダウンロードしてこの項目に設定してください。 |
IdP Metadata URL | 任意項目:SeciossLinkのIdPメタデータURLが設定できます。URLはマニュアル SAML設定を参照ください。 |
Display Name Attribute | 表示名の属性を設定します。今回は、IdPよりdisplayNameと送信されるように設定しますので、displayNameと設定します。 |
Group Attribute | グループの属性を設定します。groupと設定します。 |
Username Attribute | ユーザ名の属性を設定します。uidと設定します。 |
Email Attribute | メールアドレスの属性を設定します。mailと設定します。 |
設定が完了したら保存を行います。
※この時、管理者アカウントはログインしないように注意してください。設定を間違えたときなどに戻せるようにこのままにしておきましょう。
Jenkinsのサービスプロバイダのメタデータを取得
JenkinsでSAML設定が完了したら、サービスプロバイダのメタデータを取得します。
SAML設定の下部に、「Service Provider Metadata」というリンクがあるのでそこをクリックし、XMLメタデータを取得します。
SeciossLinkの設定手順
SAML設定の新規登録
Jenkinsでサービスプロバイダ(SP)側の設定が行えましたので、SeciossLinkでアイデンティティプロバイダ(IdP)側の設定を行います。
まず、Jenkinsから取得したサービスプロバイダのメタデータをアップロードします。
シングルサインオンメニュー>SAML>登録ページから、証明書項目でJenkinsのメタデータを読み込みます。
読み込みを行うと、メタデータに記載されている情報が画面に反映されますので、その他の設定を行っていきます。
項目 | 説明 |
サービスID | 任意のサービスIDを設定してください |
サービス名 | 画面に表示したい名称を入力してください |
アクセス先URL | JenkinsのURLを設定します。 |
送信する属性 - ユーザID@テナントID | 属性名にuidを設定してチェックボックスにチェック |
送信する属性 - メールアドレス | 属性名にmailを設定してチェックボックスにチェック |
送信する属性 - 別名 | 属性名にdisplayNameを設定してチェックボックスにチェック |
送信する属性 - ユーザーグループ | 属性名にgroupを設定してチェックボックスにチェック |
以上を設定し、保存します。
Jenkinsへのアクセス許可を設定
■ユーザー
テストユーザーを選択し、Jenkinsへのアクセス許可を付与します。
許可するサービス項目より、作成したサービスIDを選択し、保存します。
■アクセス権限
アクセス権限を選択し、許可するサービス項目より、作成したサービスIDを選択し、保存します。
この設定を行うことで、ユーザーがJenkinsにアクセスできる権限を持っているときサービスにアクセスできるようになります。
SAML連携の確認
jenkinsにアクセスし、SeciossLinkのログインが成功すればSAML連携設定完了です。