#はじめに
これから試す内容は下記 Microsoft の公開情報に書いてある内容を基に、実際に動作検証をした内容になります。
-参考情報
チュートリアル:Oracle Cloud Infrastructure Console と Azure Active Directory を統合する
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/saas-apps/oracle-cloud-tutorial
Oracle Cloud は Oracle 社が提供しているクラウド サービスになります。
その中で Oracle Cloud Infrastructure Console は Oracle Cloud を管理するための管理ポータルサイトで Azure で言うところの Azure ポータル (https://portal.azure.com) と同じ位置づけになります。
つまり、Oracle Cloud Infrastructure Console に Azure AD 上のユーザーでシングル サインオンできるようになることで、Oracle Cloud Infrastructure のポータルを利用するために Oracle Cloud 側でもサインインする必要がなくなります。
また、今回の記事では触れませんが、 Oracle Cloud Infrastructure Console に Azure AD からユーザーをプロビジョニングすることで、Oracle Cloud Infrastructure Console 側でユーザーを用意する必要がなくなります。Azure AD 上のユーザーが自動的に同期されるようになるからです。
今回は Oracle Cloud Infrastructure Console と SAML 連携してシングル サインオンできる環境を構成する手順を紹介します。
プロビジョニングについては下記 Microsoft の公開情報を基に別途時間を作って検証してみる予定です。
-参考情報
チュートリアル:自動ユーザー プロビジョニングに対応するように Oracle Cloud Infrastructure Console を構成する
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/saas-apps/oracle-cloud-infratstructure-console-provisioning-tutorial
#やってみる
まず、Oracle Cloud も Azure と同様に無料で使える評価版が用意されています。
こちらの URL にアクセスいただき、下記画面ショットにある「今すぐ始める (無償) 」をクリックします。
Oracle Cloud Free Tier
URL:https://www.oracle.com/jp/cloud/free/?source=:ows:po:0917CloudSEEDIF
Oracle Cloud Free Tier は下記画面ショットのように 30 日間無料で試せる機能と、30日間経過後も常時無料で試せる機能がセットになっています。
今回は画面ショット右にある 30 日間試せる機能の中の「管理とセキュリティ」具体的には「アイデンティ」の機能を使って検証を行います。
Oracle Cloud Free Tier のサインアップ手順は割愛します。
必要な情報を適宜入力し、サインアップが完了した 直後から Oracle Cloud が使えるようになります。
Oracle Cloud Infrastructure Console との SAML 連携手順
まず、Azure AD 側に Oracle Cloud のメタデータをアップロードするために Oracle Cloud Infrastructure Console にアクセスします。
左ペインより「アイデンティティ」→「フェデレーション」の順にクリックします。
フェデレーション画面にて赤枠で囲っている「このドキュメントをダウンロード」のリンクをクリックし、XML ファイルとして任意のフォルダにファイルを保存します。
次に Azure ポータル (https://portal.azure.com) にグローバル管理者でアクセスし、サービス一覧から「Azure Active Directory」を選択します。
概要画面の左ペインから「エンタープライズ アプリケーション」をクリックし、すべてのアプリケーション画面にて画面上部の「+新しいアプリケーション」をクリックします。
アプリケーションの追加画面で検索ボックスにて下記画面ショットのように「Oracle Cloud Infrastructure Console」と入力し、表示されるアプリケーションをクリックします。
画面右に画面がポップアップ表示されるので、画面下の「追加」をクリックします。
概要画面にて左ペインの「シングル サインオン」をクリックします。
シングル サインオン方式として「SAML」をクリックします。
SAML ベースのサインオン画面にて画面上の「メタデータ ファイルをアップロードする」をクリックします。
上述の手順で「Oracle Cloud Infrastructure Console」からダウンロードしたメタデータをアップロードし、「追加」をクリックします。
下記画面ショットのように「識別子」と「応答 URL」が自動で入力されますが、サインオン URL が自動でセットされない場合は手動で入力します。
当然サインオン URL はご利用の環境により異なります。
Azure ポータル上にはパターンとして「 https://Console.REGIONNAME.oraclecloud.com」 として記載されています。
「Oracle Cloud Infrastructure Console」にまさにアクセスしている URL を見ればどのリージョンにアクセスしているか分かります。
下記画面ショットの例は Japan East (Tokyo) リージョンがホーム リージョンであることが分かります。
「Oracle Cloud Infrastructure Console」側の URL を確認後、下記画面ショットのようにサインオン URL を入力し、画面上部の「保存」をクリックします。
Azure ポータルの画面を下にスクロールさせ、SAML 署名証明書欄の「フェデレーション メタデータ XML」の「ダウンロード」をクリックします。
ダウンロードされた XML ファイルは後述する手順で「Oracle Cloud Infrastructure Console」にアップロードするので任意のフォルダに保存してください。
次に Oracle Cloud 側に送る SAML Response に含める属性情報をカスタマイズするために、カスタム属性マッピングを追加します。
ユーザー属性とクレーム欄にある画面右のペンマークをクリックします。
ユーザー属性とクレーム画面で「一意のユーザー識別子 (名前 ID) をクリックします。
「名前識別子の形式の選択」を既定の「電子メール アドレス」から「永続的」に変更し、画面上部の「保存」をクリックします。
次にユーザー属性とクレーム画面の上部にある「+グループ要求を追加する」をクリックします。
グループ クレームの項目にそれぞれ以下の値を設定、入力し画面下の「保存」をクリックします。
項目 | 設定値 |
---|---|
クレームで返される必要があるグループ | セキュリティ グループ |
ソース属性 | グループ ID |
グループ要求の名前をカスタマイズする | チェックを入れる |
名前 (必須) | groupName |
名前空間 (省略可能) | https://auth.oraclecloud.com/saml/claims |
次にテスト接続用にユーザーを割り当てます。左ペインにある「ユーザーとグループ」をクリックします。
「+ユーザーの追加」からシングル サインオンをテストする任意のユーザーを「選択」し、画面下の「割り当て」をクリックします。
次は Oracle Cloud Infrastructure Console 側で設定を行います。
左ペインより「アイデンティティ」→「フェデレーション」の順にクリックします。
フェデレーションの画面にて「アイデンティティ・プロバイダの追加」をクリックします。
以下情報をそれぞれ入力、選択、アップロードし、画面下の「続行」をクリックします。
項目 | 設定値 |
---|---|
名前 | 任意の名前 (Azure AD だと分かるように記載) |
説明 | 任意の説明を記入 |
タイプ | SAML 2.0 準拠のアイデンティティ・プロバイダ |
FederationMetadata.xml | Azure AD からダウンロードしたファイルをアップロード |
強制認証 | チェックを外す |
グループのマッピングを追加します。
Oracle Cloud 側はデフォルトでは「Administrators」しかありません。
Oracle Cloud 側のグループと紐づけをしたい Azure AD 側のグループのグループ ID (オブジェクト ID) を入力し、「プロバイダの追加」をクリックします。
グループのオブジェクト ID は Azure ポータルのすべてのグループの「オブジェクト ID」列で確認ができます。
下記画面ショットのようにアイデンティティ・プロバイダが追加されていることを確認します。
Oracle Cloud Infrastructure Console では、Just-In-Time プロビジョニングがサポートされているため、Oracle Cloud 側にテスト ユーザーを手動で作成する必要はありません。
つまり、 Oracle Cloud 側で Azure AD が発行した SAML Response の中に含まれる「Assertion (クレーム)」を共に、テンポラリのユーザーを作成する動作をしてくれます。
この Just-In-Time プロビジョニングはアプリケーションによってサポートしていないアプリもありますので、その場合は、シングル サインオンをテストする場合においても明示的にアプリケーション側にユーザーを用意する必要があります。
それでは Oracle Cloud Infrastructure Console にシングル サインオンできるかテストしてみます。
テスト用に割り当てたユーザー (test001@shyamag026.onmicrosoft.com) のアクセスパネル (https://myapps.microsoft.com) にアクセスします。
アクセス パネルより Oracle Cloud のアイコンをクリックします。
Oracle Cloud Infrastructure Console のサインイン画面で「Identity Provider」をプルダウン メニューから作成した名前 (例では azure-active-directory」を選択します。
下記画面ショットのように「test001@shyamag026.onmicrosoft.com」として Oracle Cloud にシングル サインオンできました。
ちなみに Oracle Cloud 側のアイデンティティ・プロバイダの設定にて 強制認証 が下記画面ショットのように「有効」になっている場合の動作は、強制認証の項目に説明文があるとおり、Azure AD 側のアクセス パネルにて認証を行った状態においても、再度 IdP (Azure AD) にリダイレクトされて再認証を求める動作になります。
Identity Provider に Azure Active Directory が選択されていることを確認し「Continue」をクリックします。
Azure AD 側にリダイレクトされ再認証が要求されます。テスト ユーザーの UPN を入力して「次へ」をクリックします。
Oracle Cloud にテスト ユーザーでサインインできました。
しかし、ご覧のとおりアクセス パネルと Oracle Cloud で 認証を 2 回 ユーザーが行っていますのでシングル サインオンとは言えません。
意図的に再認証を強制したい場合において、「強制認証」を有効にしてください。
#おわりに
今回は Azure AD と Oracle 社のクラウド サービスである Oracle Cloud Infrastructure Console を Azure AD と SAML 連携し、Azure AD ユーザーで Oracle Cloud Infrastructure Console にシングル サインオンする環境を構成しました。
Azure と Oracle Cloud のマルチ クラウド環境を構成している環境において Azure AD 側のユーザーで Oracle Cloud の管理、操作をしたい場合には SAML 連携することで ID の管理をシンプルにできます。
例えば、 連携した Azure AD ユーザーで Oracle Cloud 上で作成した Oracle Database に接続、管理することも可能になっています。
また、 Azure と Oracle Cloud は 2019 年 6 月に相互接続できるよう提携を発表していますが、今回はまさにこの記事に書かれている中の、「ID とアクセス管理が統合され、Azure と Oracle Cloud 全体のリソースが管理できるようになります。」を実証した形になります。
マイクロソフトとオラクル Microsoft Azure と Oracle Cloud の相互接続を発表
URL:https://news.microsoft.com/ja-jp/2019/06/10/190610-microsoft-and-oracle-to-interconnect-microsoft-azure-and-oracle-cloud/
今回の記事が少しでも参考になれば幸いです。