2023年2月14日火曜日

REST対応SQLサービスのOAuth2による保護を確認する

 前回の記事で作成したアプリケーションを使って、REST対応SQLサービスのOAuth2による保護を確認します。

アプリケーションにページを追加し、OAuth2で保護したREST対応SQLサービスを呼び出し、動作を確認します。

REST対応SQLサービスのリクエストを許可するOAuth2クライアントを作成します。

OAuth2クライアントにロールSQL Developerを割り当てます。

以下のスクリプトを実行します。

作成したOAuth2クライアントrestsqluserCLIENT_IDCLIENT_SECRETを、ビューUSER_ORDS_CLIENTSから取得します。

select name, client_id, client_secret from user_ords_clients where name = 'restsqluser'


REST対応SQLサービスの呼び出しに使用する、Web資格証明を作成します。

ワークスペース・ユーティリティWeb資格証明より、作業を行います、

名前REST Enabled SQL Cred静的識別子REST_ENABLED_SQL_CREDとします。

認証タイプOAuth2クライアント資格証明フロークライアントIDまたはユーザー名は列CLIENT_IDの値、クライアント・シークレットまたはパスワードは列CLIENT_SECRETの値を指定します。

作成をクリックします。


続いてREST対応SQLを作成します。

ワークスペース・ユーティリティを開きます。


REST対応SQLサービスを開きます。


作成をクリックします。


名前Remote HRエンドポイントURLhttps://から始まりORDSスキーマ別名までの値です。

へ進みます。


資格証明として、先ほど作成したREST Enabled SQL Credを選択します。ロールとしてSQL Developerが割り当たっているクライアントrestsqluserにて接続されます。

作成をクリックします。


ダイアログが閉じる前に接続確認が行われます。成功するとREST対応SQLサービスが作成されます。

ダイアログを閉じます


REST対応SQLサービスが作成されました。


作成したREST対応SQLサービスを呼び出すページを作成します。

REST対応SQLサービスでは表の更新も可能なので、フォーム付きの対話モード・レポートを作成します。

ページの作成を開始します。

対話モード・レポートを選択します。

ページ定義では、フォーム・ページを含めるONにします。

データ・ソースとしてREST対応SQLサービスを選択し、REST対応SQLサービスとしてRemote HRを選択します。ソース・タイプ表/ビューの名前としてEMPを選択します。

主キー列1EMPNO (Number)です。

ページの作成をクリックします。

以上でページの追加は完成です。

ページを実行すると記事の先頭のGIF動画のように動作します。ローカル・データベースの表EMPの操作と、見かけ上の違いはありません。

ページを追加したアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/ords-rest-test2.zip

Oracle APEXのアプリケーション作成の参考になれば幸いです。