ブログ記事

Oracle Cloud InfrastructureとのSAML連携

2021/03/29

今回は、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認証設定を行ってみてください。

最新記事

カテゴリ

アーカイブ

%d人のブロガーが「いいね」をつけました。