2021年11月4日木曜日

Oracle APEX 21.2新機能(10) - SAMLサインイン

 Oracle APEX 21.2より、認証スキームとしてSAMLサインインが選択可能になっています。SAMLを選択可能にするには、管理サービスでの設定作業が必要です。

管理サービスにサインインし、インスタンスの管理を開きます。

インスタンスの設定セキュリティを開きます。


セキュリティ認証制御タブを選択し、開発環境認証スキームに含まれるSAMLの設定を行います。鉛筆アイコンをクリックします。


認証スキームの編集ページが開きます。


内部およびワークスペース・アプリケーション用のSAML: APEX属性アプリケーションのSAMLの有効化ONに変更します。認証される側であるサーバーの証明書秘密キーを登録します。ヘルプを確認する限り、秘密キーはPKCS#8フォーマットを受け付けるようです。一旦入力した秘密キーは再表示されることはありません。


内部およびワークスペース・アプリケーション用のSAML: アイデンティティ・プロバイダ属性発行者署名証明書サインインURLを設定します。

以上を設定すると、認証スキームの選択肢にSAMLサインインが現れます。

ただし、データベース側ではRSA暗号の実装が必須で、ネィティブで対応しているのはDB19c 19.9 (OCT2020 DB RU)以降およびDB21c以降です。データベースのJavaの実装を使えばRAS暗号に対応できるのですが、そういった対応がAPEXの21.2のインストール・スクリプトに含まれているのか、別途対応が必要なのかは未確認です。以下のファンクションがYを返す状態であれば、RSA暗号の対応はされています。

dbms_output.put_line(apex_210200.wwv_flow_public_key_util.is_supported_yn);

実際にSAML認証の確認までは行えていませんが、待たれていた機能なので設定方法について紹介してみました。

追記

SAML認証をサポートするには、ORDS 20.4以降を使用し、以下のマニュアルの記載にそって、構成ファイルにsecurity.externalSessionTrustedOriginsの設定を行う必要があります。

https://docs.oracle.com/cd/F47724_01/aelig/migrating-mod_plsql-ords.html#GUID-ACAAB207-8475-403E-A757-304D7E76B2EF

またDBMS_CRYPTOパッケージにRSA暗号を扱うPKENCRYPT、PKDECRYPT、SIGN、VERIFYがAutonomous Databaseの19cにも含まれています。