はじめに
Autonomous Daatabaseをデプロイすると、Oracle Application Exporess(Oracle APEX)というローコードWebアプリケーション開発プラットフォームの開発/実行環境がすぐに使える状態で提供されます。
今回は、APEXで開発したアプリケーションのユーザ認証をAzure ADで行う設定を検証してみました。
1. APEXアプリケーションの作成
名前に任意のアプリケーション名(ここでは「MY_APEX_APP」)を入力し、「アプリケーションの作成」をクリックします。
作成したAPEXアプリケーションのサインイン画面が表示されるので、APEXのベースURLをコピーしてメモしておきます。
ベースURLは以下のような文字列になります。
https://xxx.yyy.zzz.oraclecloudapps.com/ords/
https://xxx.yyy.zzz.oraclecloud.com/ords/
2. Azure ADへのアプリケーションの登録
<Azure>
Azureポータルにアクセスし、「Azure Active Directory」に移動します。
・名前:任意のアプリケーション名(ここでは「MY_APEX_APP」)
・サポートされているアカウントの種類:
この組織ディレクトリのみに含まれるアカウント (Default Directory のみ - シングル テナント)
・リダイレクトURI
プラットフォームの選択:Web
URI:APEXのベースURLの後ろにapex_authentication.callbackを追加した文字列
以下のような形になります。
https://.......oraclecloud.com/ords/apex_authentication.callback
上記を入力し、「登録」をクリックします。
3. Azure ADユーザへのアプリケーションアクセスの許可
<Azure>
Azure ADの「エンタープライズアプリケーション」に移動します。
2.で登録したアプリケーションの名前(ここでは「MY_APEX_APP」)をクリックします。
アプリケーションへのアクセスを許可するユーザ、グループを選択し、「選択」をクリックします。
4. クライアントシークレットの作成
<Azure>
Azure ADの「アプリの登録」に移動します。
登録したアプリケーションの名前(ここでは「MY_APEX_APP」)をクリックします。
「アプリケーション(クライアント)ID」の値をコピーしてメモしておきます。
説明:任意(ここでは「Client Secret for MY_APEX_APP」)
有効期限:任意(推奨:6ヶ月)
上記を入力して、「追加」をクリックします。
5. APEXアプリケーションにWebクレデンシャルを追加
<APEX>
アプリケーションの「共有コンポーネント」をクリックします。
検索条件に「Web credentials」と入力し、表示された「Create Web Credentials」をクリックします。
名前:任意の名前(ここでは「Azure AD」)
クライアントIDまたはユーザー名:先ほどメモした「アプリケーション(クライアント)ID」の値
クライアント・シークレットまたはパスワード:先ほどメモした「クライアントシークレット」の値
クライアント・シークレットまたはパスワードの確認:先ほどメモした「クライアントシークレット」の値
上記を入力したら、「作成」をクリックします。
6. 「OpenID Connect メタデータ ドキュメント」のエンドポイントの取得
<Azure>
Azure ADの「アプリの登録」に移動し、登録したアプリケーションの名前をクリックします。
「OpenID Connect メタデータ ドキュメント」のエンドポイントをコピーしてメモしておきます。
※「OpenID Connect メタデータ ドキュメント」のエンドポイントは、以下のような文字列です。
https://login.microsoftonline.com/xxxxxxxxxxxxxxxx/v2.0/.well-known/openid-configuration
右上の「✖️」をクリックします。
7. APEXアプリケーションでAzure ADによる認証を有効化
<APEX>
アプリケーションの「共有コンポーネント」をクリックします。
認証スキームの作成ウィザードが表示されます。
名前:任意の認証スキーム名(ここでは「Azure AD Scheme」)
スキーム・タイプ:ソーシャル・サインイン
資格証明ストア:先ほど作成したWeb資格証明(ここでは「Azure AD」)を選択
認証プロバイダ:OpenID Connectプロバイダ
検出用URL:先ほどメモした「OpenID Connect メタデータ ドキュメント」のエンドポイント
有効範囲:profile,email,offline_access
ユーザ名:preferred_username
上記を入力したら、「認証スキームの作成」をクリックします。
認証スキーム「Azure AD Scheme」が作成され、認証スキームとしてアクティブ化されました。
8 .動作確認
<APEX>
アプリケーション「MY_APEX_APP」の開発画面のトップに移動し、「アプリケーションの実行」をクリックします。
Azure ADのサインイン画面にリダイレクトされるので、Azure ADユーザのユーザ名を入力します。
(初回はAzure ADのアクセス許可の確認画面が表示されます。)
APEXアプリケーション「MY_APEX_APP」のホーム画面が表示されました。
Azure ADのユーザを使用して、APEXアプリケーションにサインインできることが確認できました。
以上で、Autonomous Database上のAPEXアプリケーションにAzure AD認証を設定することができました。