Skip to content

ローカルユーザー MFA

Oracle Database では、ローカルユーザーのログインに対して多要素認証(MFA)を構成できます。 パスワードに加えて第二の認証要素を要求することで、パスワード漏えい時の不正ログインリスクを低減します。

ローカルユーザー向け MFA は OCI IAM と連携し、以下の方式をサポートしています。

  • OMA プッシュ通知(Oracle Mobile Authenticator)— スマートフォンへのプッシュ通知で承認
  • Cisco Duo プッシュ通知 — Duo モバイルアプリによる承認
  • 証明書ベース — クライアント証明書による第二要素

このチュートリアルでは OMA プッシュ通知を使用します。

[ DBクライアント ] [ Oracle Database ] [ OCI IAM ]
| | |
|── パスワードで接続 ──▶| |
| |── OMAプッシュ要求 ──▶|
| | |── プッシュ通知送信 ─▶ [ OMAアプリ ]
| | | |
| |◀──── 承認結果 ───────|◀──────── 承認 ────────────|
|◀── 接続完了 ─────────| |
  1. DB ユーザーがパスワードで接続要求を送る
  2. DB が OCI IAM(機密アプリケーション)経由でユーザーの OMA アプリへプッシュ通知を送る
  3. ユーザーがスマートフォンで承認すると、DB が接続を許可する

DB と OCI IAM の連携には OAuth クライアント(機密アプリケーション) を使用します。 クライアント ID / シークレットは DB サーバーのウォレット(secretstore)に格納します。

サポートバージョンと制限事項

Section titled “サポートバージョンと制限事項”
バージョン最低パッチレベル
19c19.28 以降
23c / 23ai23.9 以降

以下の接続・認証方式では MFA はサポートされていません。

  • 直接ログインの RAS ユーザー
  • アプリケーション接続(サーバー間接続を含む)
  • 集中管理ユーザー(CMU)接続
  • 外部パスワードファイルを使用した管理接続(OMA / Duo プッシュ)
  • HTTP ダイジェスト認証
  • ロール・パスワード
コンポーネント説明
機密アプリケーション(IAM)DB が OMA プッシュ要求を送るための OAuth クライアント。MFA clientUser administrator ロールが必要
MFA_OMA_IAM_DOMAIN_URLOMA プッシュ通知先の Identity Domain URL を指定する初期化パラメータ(PDB に設定)
MFA ウォレット<WALLET_ROOT>/mfa(CDB)または <WALLET_ROOT>/<PDB GUID>/mfa(PDB)に作成する orapki ウォレット
secretstore エントリorapki secretstore create_entry でクライアント ID / シークレットをウォレットに格納する
-- ユーザー作成時に OMA プッシュ要素を指定する
CREATE USER <ユーザー名> IDENTIFIED BY <パスワード>
AND FACTOR 'OMA_PUSH' AS '<メールアドレス>';
-- 既存ユーザーに追加する場合
ALTER USER <ユーザー名> ADD FACTOR 'OMA_PUSH' AS '<メールアドレス>';

メールアドレスは OCI IAM 側のユーザーアカウントと紐付くため、初回登録時に IAM ユーザーのアクティベーションと OMA アプリの設定が必要になります。

Oracle Base Database Service の PDB を対象に、OMA プッシュ通知による MFA の設定と動作確認を行います。

  1. MFA を設定する

    OCI IAM で機密アプリケーション(OAuth クライアント)を作成し、MFA_OMA_IAM_DOMAIN_URL パラメータと MFA ウォレット(secretstore)の設定を行います。

  2. OMA プッシュでログインする

    DB ユーザーに OMA プッシュ要素を設定し、接続時にスマートフォンへのプッシュ通知が届いて承認することで接続できることを確認します。