使用 Oracle Mobile Authenticator (OMA) 在 Oracle Database 23ai 中為本機使用者啟用 MFA

簡介

Oracle 2025 年 7 月的資料庫版本更新 (DBRU) 導入了重要的安全性增強功能:內部部署和混合式資料庫使用者的原生多重因素認證 (MFA) 。這項新功能可在 Oracle Database 23ai (23.9+) 中使用,並已備份至 19c (2025 年 7 月最新版本更新) ,讓您能夠使用行動裝置直接的第二個認證因素來保護傳統資料庫帳戶,例如 'SCOTT' 帳戶。這樣就不需要仰賴外部身分識別提供者進行 MFA。本指南將逐步介紹使用 Oracle Mobile Authenticator (OMA) 應用程式導入 MFA 的步驟。

自治式資料庫

為何需要這麼做?

先前,為 Oracle Database 實作多重因素認證需要與外部身分識別提供者 (例如 Entra ID、OCI Identity and Access Management (IAM) 或 RADIUS) 整合。此方法為無需存取這些啟用 MFA 的目錄 (包括內部部署獨立資料庫、IaaS 部署或 Oracle Base Database Service 系統) 的環境帶來重大挑戰。

透過 2025 年 7 月資料庫版本更新 (DBRU) ,Oracle 現在可為 Oracle Database 19c 和 23ai 中的本機資料庫使用者啟用原生 MFA。此新功能支援使用 Oracle Mobile Authenticator (OMA) Cisco Duo 進行推送式驗證,提供健全的整合式安全性解決方案。

主要優點

適用對象

本教程專為:

目標

本教學課程的主要目的是示範如何為本機 Oracle Database 使用者啟用多重因素認證 (MFA)。雖然 Oracle 支援將 MFA 與外部提供者 (例如 OCI Identity and Access Management 或 Cisco Duo) 整合,但本指南將特別著重於使用 Oracle Mobile Authenticator (OMA) 應用程式的原生推送式認證工作流程。

必備條件

若要完成此教學課程,需要下列元件:

  1. Oracle Database Instance:執行 2025 年 7 月資料庫版本更新 (DBRU) 的 Oracle Database 23ai 執行處理 (23.9+) 或資料庫 19c 執行處理。本指南使用 23ai OCI Base Database Service 實例。
  2. 行動裝置:已安裝 Oracle Mobile Authenticator (OMA) 應用程式的 Android 或 iOS 智慧型手機。
  3. OCI Email Delivery:需有 OCI Email Delivery 才能發送 MFA 註冊的電子郵件邀請函。此服務需要:

工作 1:OCI 身分識別與存取管理組態

啟用多重因素認證之前,您必須先在 OCI Identity and Access Management 識別網域中設定 OAuth 應用程式。由於資料庫的 MFA 公事包使用其證明資料來驗證認證權杖,因此此應用程式非常重要。

  1. 登入 OCI 主控台並瀏覽至識別與安全性、網域

    自治式資料庫

  2. 選取您目前的網域並複查其詳細資訊。記下網域 URL (不包括連接埠號碼)。

    自治式資料庫

  3. 在識別網域中註冊 OAuth 從屬端應用程式。這是 MFA 功能正確運作的必要步驟。按一下整合的應用程式,然後按一下新增應用程式

    自治式資料庫

  4. 選取機密應用程式,然後按一下啟動工作流程

    自治式資料庫

  5. 輸入必要的應用程式詳細資訊,例如名稱和描述,然後按一下送出

    自治式資料庫

  6. 按一下您剛建立的應用程式即可檢視其詳細資訊。

    自治式資料庫

  7. 瀏覽至 OAuth 組態頁籤,然後按一下編輯 OAuth 組態

    自治式資料庫

  8. 從屬端組態段落中,選取立即將此應用程式設定為從屬端。** 在允許的授權類型底下,確定從屬端證明資料是唯一選取的選項。請勿按一下「提交」。

    自治式資料庫

  9. 向下捲動至應用程式角色區段並加以啟用。

    自治式資料庫

  10. 按一下新增 App 角色按鈕。

    自治式資料庫

  11. 新增使用者管理員、識別網域管理以及 MFA 從屬端角色,然後按一下新增按鈕。

    自治式資料庫

  12. 確認 App 角色,然後按一下送出

    自治式資料庫

  13. OAuth 組態頁籤上的從屬端 ID從屬端加密密碼現已可供使用。

工作 2:電子郵件傳遞的 OCI 識別和存取管理群組組態

若要使用 OCI Email Delivery 傳送 MFA 通知,您必須先建立具備必要權限的專用 IAM 群組。

  1. 登入 OCI 主控台並瀏覽至識別與安全性網域。選取您目前的識別網域。按一下使用者管理頁籤,向下捲動至群組,然後按一下建立群組

    自治式資料庫

  2. 提供新群組的名稱 (例如 EmailDeliveryServicesUsers)。新增負責管理此群組之電子郵件傳遞服務的適當使用者。

    自治式資料庫

    自治式資料庫

  3. 建立電子郵件傳遞的 IAM 原則。若要允許 IAM 群組傳送電子郵件通知,您必須建立一個授予其必要權限的原則。登入 OCI 主控台並瀏覽至身分識別與安全性、原則,然後按一下建立原則

    自治式資料庫

  4. 提供原則的名稱描述 (例如 MFA_Email_Delivery_Policy)。在原則製作器段落中,輸入下列原則敘述句,然後按一下建立

    允許 'OracleIdentityCloudService'/'EmailDeliveryServicesUsers' 群組使用 AlexKovuru 區間中的電子郵件系列。

    自治式資料庫

  5. 最後,您必須建立資料庫將使用的 SMTP 證明資料。登入 OCI 主控台,瀏覽至身分識別與安全性我的設定檔,然後按一下已儲存的密碼頁籤。然後移至 SMTP 證明資料,然後按一下產生證明資料

    自治式資料庫

  6. 產生 SMTP 證明資料,並確定立即複製 SMTP 使用者名稱和密碼。

    自治式資料庫

    重要事項:密碼只會顯示一次,因此您必須先儲存密碼,才能關閉視窗。

    自治式資料庫

    自治式資料庫

  7. 登入 OCI 主控台,然後瀏覽至開發人員服務應用程式整合電子郵件傳遞組態。尋找指定給您區域的 SMTP 傳送資訊。記下公用端點SMTP 連接埠值。

    自治式資料庫

  8. 請注意,OCI Email Delivery 只允許從核准的寄件者和註冊網域傳送。(如先決條件 3 所述)。

作業 3:設定 MFA 的資料庫

此作業使用 Oracle Mobile Authenticator (OMA) 和 SMTP 整合,設定 Oracle 23ai 可插拔資料庫 (PDB) 的多重因素認證 (MFA)。

  1. SYSDBA 權限連線到您的 PDB:

     sqlplus "/as sysdba"
    
  2. 設定 MFA 的可插拔資料庫 (PDB),您需要設定下列參數。MFA_SENDER_EMAIL_ID 參數必須設為您已在 OCI Email Delivery 中設定的核准寄件者。

     ALTER SYSTEM SET MFA_OMA_IAM_DOMAIN_URL ='https://idcs-bc1a4xxxxxxxxxxxxxxxx3744.identity.oraclecloud.com'; (from Task 1- step 2)
     ALTER SYSTEM SET MFA_SMTP_HOST ='smtp.email.us-pxxxxix-1.oci.oraclecloud.com'; (from Task 2- step 7)
     ALTER SYSTEM SET MFA_SMTP_PORT = 5x7; (from Task 2- step 7)
        
     ALTER SYSTEM SET MFA_SENDER_EMAIL_ID ="alx.test@alxreviews.com"; (from Prerequisites - step 3)
            
     ALTER SYSTEM SET MFA_SENDER_EMAIL_DISPLAYNAME = 'DB Admin';
    
  3. 更新 sqlnet.ora:編輯檔案並新增下列參數:

     SQLNET.INBOUND_CONNECT_TIMEOUT=120
    
  4. 設定 Oracle Wallet:使用 Oracle Wallet 安全地儲存 OAuth 和 SMTP 證明資料。檢查 PDB GUID 和公事包根目錄

     show parameter wallet_root;
     SELECT guid FROM v$containers WHERE name = 'DB23MFAPDB';
    
  5. 建立 MFA 公事包目錄:

     mkdir -p /opt/oracle/dcs/commonstore/wallets/DBS23MFA_k3x_phx/3B36E010Dxxxxxxxxxxxx40A7AC6/mfa
     cd /opt/oracle/dcs/commonstore/wallets/DBS23MFA_k3x_phx/3B36E010Dxxxxxxxxxxxx40A7AC6/mfa
    
  6. 建立 Oracle Wallet

     orapki wallet create -wallet ./ -pwd <user_password> -auto_login -compat_v12
    
  7. 將您的 MFA 證明資料安全地儲存在 Oracle Wallet 中。資料庫依賴此公事包來存取 OAuth 從屬端和 SMTP 證明資料。每個證明資料的別名名稱與下列預先定義的值完全相符是很重要的。

    必要的別名及其對應的證明資料:

    • oracle.security.mfa.oma.clientid → OAuth 從屬端 ID (從工作 1 – 步驟 12)
    • oracle.security.mfa.oma.clientsecret → OAuth 從屬端加密密碼 (從工作 1 – 步驟 12)
    • oracle.security.mfa.smtp.user → 在您的 OCI 使用者設定檔中產生的 SMTP 使用者名稱 (從「工作 2 – 步驟 6」)
    • oracle.security.mfa.smtp.password → 為您的使用者產生的 SMTP 密碼 (從「工作 2 – 步驟 6」)

    您可以使用 orapki 公用程式來建立公事包及新增這些證明資料。

     orapki secretstore create_entry -wallet ./ -pwd <user_password> -alias oracle.security.mfa.oma.clientid    -secret a9cdb456cdxxxxxxxxxxxx31c316
        
     orapki secretstore create_entry -wallet ./ -pwd <user_password> -alias oracle.security.mfa.oma.clientsecret -secret idcscs-a263de20-xxxxxxxxxxxx-207f5e56e1ad
        
     orapki secretstore create_entry -wallet ./ -pwd <user_password> -alias oracle.security.mfa.smtp.user        -secret ocid1.user.oc1..aaaa...@ocid1.tenancy.oc1..aaaa....
        
     orapki secretstore create_entry -wallet ./ -pwd <user_password> -alias oracle.security.mfa.smtp.password    -secret '[4lnl0rxxxxxxxxxxxxUgobB'
    
  8. 建立啟用 MFA 的使用者:使用 MFA 因子認證建立使用者:

     CREATE USER testmfa IDENTIFIED BY <user_password> 
     AND FACTOR ‘OMA_PUSH’ AS ‘registered_emailid’;
    

    注意:此電子郵件必須是已註冊 OMA App 的有效帳戶。否則,將無法傳遞推送通知。

  9. 授予必要角色:

     GRANT CONNECT, RESOURCE TO testmfa;
    
  10. 使用者將收到一封內含完成 OMA 註冊指示的電子郵件。此電子郵件將包含 QR Code,他們必須使用 Oracle Mobile Authenticator 應用程式掃描才能設定 MFA。

    自治式資料庫

作業 4:測試 MFA 認證

  1. 以新使用者身份連線:

     sqlplus testmfa/<user_password>
    
  2. 核准 OMA App 中的登入要求。

    自治式資料庫

  3. 確認連線的使用者:

     SHOW USER;
     SELECT * FROM SESSION_ROLES;
    

確認

Authors - Alex Kovuru (首席雲端架構師)

貢獻者 - Indiradarshni Balasundaram (資深雲端工程師)

其他學習資源

docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center