Oracle Cloud InfrastructureとのSAML連携
schedule 2021/03/29 refresh 2023/11/09
今回は、IaaSである「Oracle Cloud Infrastructure」とのSAML連携によるシングルサインオンを行ってみようと思います。
基本的には、Oracle Cloud Infrastructureドキュメントで公開されているアイデンティティ・プロバイダによるフェデレートに沿ってSeciossLinkとのSAML連携を設定していきます。
SeciossLinkとの連携の場合、「SAML 2.0アイデンティティ・プロバイダによるフェデレート」の手順を行っていきます。
ステップ.1 Oracle Cloud Infrastructureのフェデレーション・メタデータをダウンロード
Oracle Cloud Infrastructureにログインし、メニューから「ガバナンスと管理」「アイデンティティティ」「フェデレーション」を開きます。
インフォメーションメッセージ内に、「このドキュメントをダウンロード」リンクがあります。ここからOracle Cloud Infrastructureのフェデレーション・メタデータを取得します。
ステップ.2 Oracle Cloud Infrastructureを信頼できるサービスプロバイダとしてIdPに登録
Oracle Cloud InfrastructureをSP(サービスプロバイダ)としたとき、IdP(アイデンティティプロバイダ)に信頼できるSPとして登録します。
SeciossLinkのメニューより、「シングルサインオン」「SAML」「登録」を開きます。
登録ページ内の「メタデータ」より、Oracle Cloud Infrastructureからダウンロードしたフェデレーション・メタデータをアップロードします。
アップロードし「読み込む」をクリックすることで、連携に必要なデータが登録されます。
読み込みが終わったら、
「サービスID」に管理用のIDを入力(任意の値)
アクセス先URLに「https://console.ap-tokyo-1.oraclecloud.com/?tenant=OCIテナントID」
送信する属性の「ユーザーグループ」にチェックを入れ、「https://auth.oraclecloud.com/saml/claims/groupName」を設定。
すべて設定できたら、「保存」をクリックします。
ステップ.3 Oracle Cloud Infrastructure用のグループを作成しメンバーを登録
Oracle Cloud Infrastructureは認証後に受け取るパラメータとして、グループ情報が必要になります。
これは、IdP、SPで相互に用意しておく必要があります。
まず、SeciossLink上でグループを作成します。
メニューより「ユーザーグループ」「新規作成」を開きます。
グループ名に、ここでは「ocitest」と設定します。(この値は後でまた使います)
グループを作成したら、メンバーとしてsecioss.taroユーザーを登録しこのユーザでOracle Cloud InfrastructureにSSOできるように設定しておきます。
ステップ4: IdPのメタデータ・ドキュメントをダウンロード
SeciossLinkにOracle Cloud Infrastructureのフェデレーション・メタデータをを登録したように、Oracle Cloud InfrastructureにもIdPのメタデータを登録する必要があります。
メニューより「シングルサインオン」「SAML」「設定」を開きます。
ダウンロードしたIdPのメタデータをOracle Cloud Infrastructureに登録できるように成形します。
ダウンロードした「idpMetadata.xml」を開き、以下のように編集します。
<KeyDescriptor>
から、</KeyDescriptor>
までをコピー。</KeyDescriptor>
の下にコピーした<KeyDescriptor>
~</KeyDescriptor>
を張り付ける。
1つ目の<KeyDescriptor>
は、<KeyDescriptor use="signing">
2つ目の<KeyDescriptor>
は、<KeyDescriptor use="encryption">
と修正し、保存します。
<KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> ~公開鍵~ </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </KeyDescriptor> <KeyDescriptor use="encryption"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> ~公開鍵~ </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </KeyDescriptor> |
これで、Oracle Cloud Infrastructureに登録するIdPのメタデータ準備が整いました。
ステップ5: Oracle Cloud InfrastructureでIdPをフェデレートする
Oracle Cloud Infrastructureのメニューより、「ガバナンスと管理」「アイデンティティ」「フェデレーション」を開きます。
「アイデンティティ・プロバイダの追加」より、IdPの設定を行います。
名前、説明、タイプ、メタデータを設定し続行をクリックします。
アイデンティティ・プロバイダからOracle Cloud Infrastructureに送信されてきたグループ情報をOracle Cloud Infrastructureのグループ情報にマッピングします。
ここでは、ステップ.3で作成したocitestグループ名をアイデンティティ・プロバイダ・グループに入力します。
OCIグループには、Oracle Cloud Infrastructureで作成したグループが表示されますので、その中から選びます。
「プロバイダの追加」をクリックし、アイデンティティ・プロバイダの追加が完了します。
作成が成功すると、一覧にアイデンティティ・プロバイダが表示されます。
ここまでで、SeciossLinkとOracle Cloud InfrastructureでSSOが行えるようになったはずです。
Oracle Cloud Infrastructureのログイン画面にアクセスすると、IdPの選択が行えるようになっています。
作成した、SeciossLink-Test(すべて小文字表示されます)を選択し、ContinuをクリックするとSeciossLinkへ遷移し認証を求められます。
ocitestのグループに所属したユーザーで認証し、ログインできればSSO成功です。
いかがでしたでしょうか。
SeciossLinkはSAML対応サービスであれば様々なシステムとSSOが可能です。
SAMLに対応したサービスをご利用の場合は是非SAML認証設定を行ってみてください。