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にログインし、メニューから「ガバナンスと管理」「アイデンティティティ」「フェデレーション」を開きます。


20210329_1

 

インフォメーションメッセージ内に、「このドキュメントをダウンロード」リンクがあります。ここからOracle Cloud Infrastructureのフェデレーション・メタデータを取得します。


20210329_2

 

ステップ.2 Oracle Cloud Infrastructureを信頼できるサービスプロバイダとしてIdPに登録

Oracle Cloud InfrastructureをSP(サービスプロバイダ)としたとき、IdP(アイデンティティプロバイダ)に信頼できるSPとして登録します。


SeciossLinkのメニューより、「シングルサインオン」「SAML」「登録」を開きます。


20210329_3

 

登録ページ内の「メタデータ」より、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できるように設定しておきます。


20210329_4

 

ステップ4: IdPのメタデータ・ドキュメントをダウンロード

SeciossLinkにOracle Cloud Infrastructureのフェデレーション・メタデータをを登録したように、Oracle Cloud InfrastructureにもIdPのメタデータを登録する必要があります。


メニューより「シングルサインオン」「SAML」「設定」を開きます。


20210329_5

 

ダウンロードした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の設定を行います。

名前、説明、タイプ、メタデータを設定し続行をクリックします。

 

 20210329_7 

 

アイデンティティ・プロバイダからOracle Cloud Infrastructureに送信されてきたグループ情報をOracle Cloud Infrastructureのグループ情報にマッピングします。

 

ここでは、ステップ.3で作成したocitestグループ名をアイデンティティ・プロバイダ・グループに入力します。

 

OCIグループには、Oracle Cloud Infrastructureで作成したグループが表示されますので、その中から選びます。

 

「プロバイダの追加」をクリックし、アイデンティティ・プロバイダの追加が完了します。

 

 20210329_8 

 

作成が成功すると、一覧にアイデンティティ・プロバイダが表示されます。

 

20210329_9

 

ここまでで、SeciossLinkとOracle Cloud InfrastructureでSSOが行えるようになったはずです。

 

Oracle Cloud Infrastructureのログイン画面にアクセスすると、IdPの選択が行えるようになっています。

 

作成した、SeciossLink-Test(すべて小文字表示されます)を選択し、ContinuをクリックするとSeciossLinkへ遷移し認証を求められます。

 

ocitestのグループに所属したユーザーで認証し、ログインできればSSO成功です。

 

いかがでしたでしょうか。

SeciossLinkはSAML対応サービスであれば様々なシステムとSSOが可能です。

SAMLに対応したサービスをご利用の場合は是非SAML認証設定を行ってみてください。