OCI IAM Identity Domains~外部サイトへのSAML連携~
こんにちは。Oracle Cloud Infrastructure(OCI)特集 編集部です。
今回はOCIの認証サービス IAM Identity Domainsと外部サイトへのSAML連携(Backlog)についてご紹介します。
本記事では、IAM Identity Domains にて事前にドメインの追加をしている必要があります。
ドメインの追加に関する記事についてはこちらからご確認ください。
また、今回外部サイトの連携サンプルとして、株式会社ヌーラボが提供するBacklogを利用します。
BacklogでSAML認証を使用するには、Nulab Passを使用して管理対象アカウントを作成しておく必要があります。
1. 連携アプリケーションのメタデータ取得
まずは連携対象であるBacklogのメタデータを取得します。
各サービスのSAMLによって記載が異なりますが、認証先となるSP(Backlog)の “SP EntityID” と “SP Endpoint URL(ACS)”を取得します。
ACSはアサーションコンシューマーサービスとよばれ、アサーションコンシューマーサービスURLなどとも記載がされていたりします。

2. OCIでアプリケーションの登録とアプリメタデータのインポート
①取得したBacklog側のメタデータをOCIへインポートをします。
OCIにログインした後、左上のハンバーガーアイコンから、アイデンティティとセキュリティ、ドメインを選択します。
ログイン時には、使用するドメインの管理者権限を保持したユーザーでログインしてください。

②ドメインの一覧が表示されるので対象のドメインを選択します。

③ドメインのトップ設定画面に遷移されたら、左のタブから、アプリケーションを選択します。

④アプリケーションの一覧画面が表示されたら、アプリケーションの追加を選択してアプリケーションを追加します。

⑤ワークフローの起動画面に遷移したら、SAMLアプリケーションを選択して、ワークフローの起動を選択します。

⑥次にアプリケーションの「名前」と「説明」を入力します。

⑦そのまま下部に進むと「権限付与を認可として実施」のチェックボックスがあるので、これのチェックを外します。
外したら、次を選択します。

⑧次に連携するアプリケーションメタデータの入力を行います。
1. 連携アプリケーションのメタデータ取得 にて取得した情報を元に以下を入力します。
・エンティティID :https://apps.nulab.com/signin/spaces/xxxx/saml
・アサーション・コンシューマのURL :https://apps.nulab.com/signin/spaces/xxxx/saml/callback
・名前IDフォーマット :電子メール・アドレス
・プライマリ電子メール :プライマリ電子メール
※各サービスによってユーザーを識別するための情報が異なります。
Backlogでは以下のように、メールアドレスをもって認証を行う必要があります。
参考URL:https://support-ja.nulab.com/hc/ja/articles/360050198033#h_01ED86YBQ5FZR6BSYNZDN4PQ0R


⑨そのまま下部に進んで、「シングル・ログアウトの有効化」のチェックを外します。
今回は、SAMLを使用したシングルサインオン先のログアウトを無効化します。

⑩さらにそのまま下部に進んで、「属性構成」の情報を入力します。
以下の設定では、OCI側で所属するグループ名が対象アプリケーションへ渡されます。
・名前 :GroupName (任意の名前)
・形式 :基本
・タイプ :ユーザー属性
・タイプ値 :グループ・メンバーシップ
・条件 :すべてのグループ
・条件値 :すべてのグループ (グレーアウト)
入力したら、終了を選択します。

⑪終了をしたらアプリケーションが作成されるので、そのまま「アクティブ化」を選択してアクティブ化します。

⑫最後に、Backlogに設定するための情報をダウンロードします。
「証明書のダウンロード」と「アイデンティティ・プロバイダ・メタデータのダウンロード」を選択して、IDCSCertificate.pemとIDCSMetadata.xmlをダウンロードします。

3. 連携アプリケーションでOCIメタデータのインポート
Backlogの画面にて、以下の情報を入力します。
●IDCSMetadata.xmlの情報を抽出
・IdP Entity ID :https://idcs-xxxx.identity.oraclecloud.com/fed
・IdP Endpoint URL :https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/slo
※IDCSMetadata.xmlの “SAML:2.0:bindings:HTTP-Redirect” で指定されたURL
●IDCSCertificate.pemの情報を抽出
・x.509 Certificate (Base64) :記載された内容すべて

以上ですべての設定が完了となります。
これで、BacklogにてOCIで作成されたユーザー(メールアドレス)でログインすることが可能になります。
最後に
本記事では、OCIの認証サービスである OCI IAM Identity Domains の外部サイトへのSAML連携としてBacklogへの連携を行いました。
各サービスによって、設定値の名前は異なるものの設定内容についてはほぼ変わらないため、一度実施していただくと流用性が高い知識になります。
<免責事項>
情報の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。また、当サイトに掲載された情報を利用・使用(閲覧、投稿、外部での再利用など全てを含む)するなどの行為に関連して生じたあらゆる損害等につきましても、理由の如何に関わらず自己責任で行う必要があります。