附註:

將 Oracle Autonomous Database 與 Microsoft Entra ID 整合

簡介

Oracle Autonomous Database 可以與 Microsoft Entra ID (ME-ID - 之前稱為 Azure Active Directory (Azure AD) 整合。ME-ID 使用者和應用程式可以使用 ME-ID 單一登入 (SSO) 證明資料登入,以取得 ME-ID OAuth2 存取權杖並存取資料庫。

這是使用 ME-ID OAuth2 存取記號來完成,使用者或應用程式會先從 ME-ID 要求。此 OAuth2 存取記號包含使用者識別和資料庫存取資訊,然後傳送至資料庫。

適用對象

IAM 專業人員和管理員。

目標

必要條件

作業 1:向 Microsoft Azure 應用程式註冊註冊 Oracle Autonomous Database

  1. 請至少以雲端應用程式管理員身分登入 Microsoft Azure 入口網站

    Microsoft Azure 入口網站

  2. 瀏覽至首頁Azure Active Directory應用程式註冊以及註冊應用程式。將名稱輸入為 ADB-DB,然後按一下註冊。應用程式已經建立。

    Microsoft Azure 入口網站

  3. 按一下應用程式 ID URI:新增編輯應用程式 ID URI ,然後將 api: 取代為所提及的租用戶網域名稱,然後按一下儲存

    • 應用程式 ID URI:<tenancy_domain_name>/appid

      Microsoft Azure 入口網站

  4. 按一下新增範圍並輸入下列詳細資訊,然後按一下新增範圍

    • 範圍名稱session:scope:connect

    • 誰可以同意?Admins and users

    • 管理同意顯示名稱connect to database

    • 管理同意說明connect to database

    • 使用者內容顯示名稱connect to database

    • 使用者內容描述connect to database

    • 狀態Enabled

      Microsoft Azure 入口網站

  5. 按一下總覽應用程式角色建立應用程式角色,輸入下列詳細資訊,然後按一下套用

    • 顯示名稱pdb.users

    • 允許的成員類型Users/Groups

    • pdb.users

    • 說明all user access

    • 要啟用此 App 角色嗎?Enabled

      Microsoft Azure 入口網站

      Microsoft Azure 入口網站

  6. 按一下應用程式角色建立應用程式角色,輸入下列詳細資訊,然後按一下套用

    • 顯示名稱dba.role

    • 允許的成員類型Users/Groups

    • dba.role

    • 說明dba global role

    • 要啟用此 App 角色嗎?Enabled

      Microsoft Azure 入口網站

  7. 按一下應用程式角色建立應用程式角色,輸入下列詳細資訊,然後按一下套用

    • 顯示名稱hr.app

    • 允許的成員類型Applications

    • hr.app

    • 描述application

    • 要啟用此 App 角色嗎?Enabled

      Microsoft Azure 入口網站

  8. 瀏覽至首頁企業應用程式ADB-DB指派使用者與群組

  9. 新增指派下,選取使用者,然後選取您的使用者。產生存取權杖時,此指定的使用者將用於「單一登入」。

    • 選取角色下,選取 pdb.users

    • 按一下「選取」

    • 按一下指定

  10. 新增指派下,選取使用者,然後選取您的使用者。產生存取權杖時,此指定的使用者將用於「單一登入」。

    • 選取角色下,選取 dba.role

    • 按一下「選取」

    • 按一下指定

作業 2:建立從屬端應用程式註冊

  1. 瀏覽至首頁應用程式註冊註冊應用程式、輸入下列詳細資訊,然後按一下註冊

    • 名稱ADB-Client

    • 支援的帳戶類型Accounts in this organizational directory only

    • 重新導向 URIPublic client/native - http://localhost

      Microsoft Azure 入口網站

  2. 瀏覽至 API 權限,然後按一下新增權限。在要求 API 權限底下,選取我的組織使用的 APIADB-DB委派權限以及權限作為 session:scope:connect,然後按一下新增權限

    Microsoft Azure 入口網站

  3. 按一下顯示 API應用程式 ID URI:新增編輯應用程式 ID URI ,並以租用戶網域名稱取代 api:

    Microsoft Azure 入口網站

作業 3:連線至 SQL 資料庫

  1. 瀏覽至 Oracle Autonomous Database 並按一下資料庫動作下拉式清單,選取 SQL 並輸入下列查詢。

    Microsoft Azure 入口網站

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    

    OCI 入口網站

    注意identity_provider_type 目前設為 NONE

  2. 執行資料庫程序,將身分識別提供者設為 Azure AD。

    BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
    type =>'AZURE_AD',
    params => JSON_OBJECT('tenant_id' VALUE '<tenant_id>',
    'application_id' VALUE '<application_id>',
    'application_id_uri' VALUE '<application_id_uri>'),
    force => TRUE
    );
    END;
    

    OCI 入口網站

  3. 再次執行 SQL 查詢以檢查身分識別提供者。

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    

    OCI 入口網站

    注意identity_provider_type 現在是 Azure AD

  4. 建立使用者 - allusershrapp角色 - dba_azure

    CREATE USER allusers IDENTIFIED GLOBALLY AS 'AZURE_ROLE=pdb.users';
    CREATE USER hrapp IDENTIFIED GLOBALLY AS 'AZURE_ROLE=hr.app';
    CREATE ROLE dba_azure IDENTIFIED GLOBALLY AS 'AZURE_ROLE=dba.role';
    
  5. 建立階段作業授予 - allusershrapp

    GRANT CREATE SESSION TO allusers;
    
    GRANT CREATE SESSION TO hrapp;
    
    GRANT pdb_dba TO dba_azure;
    

    OCI 入口網站

作業 4:瀏覽至 Azure 入口網站

  1. 開啟 Azure Portal 並瀏覽至首頁應用程式註冊ADB- 用戶端。複製應用程式 (從屬端) ID目錄 (租用戶) ID

    Microsoft Azure 入口網站

  2. 開啟 Azure 入口網站,然後瀏覽至首頁應用程式註冊ADB-DB 。複製範圍 (Scope)

    Microsoft Azure 入口網站

工作 5:使用 MSAL Python 程式庫取得 Microsoft Access Token

  1. 請參閱 Python 命令檔以使用 AuthZ 流程取得存取權杖,請參閱使用 MSAL Python 程式庫取得 Microsoft Entra ID 權杖

  2. 在工作 4 中取得的命令檔中取代 Client_idTenant_idScope

    修改 Python 文稿

工作 6:執行 Python 命令檔

  1. 開啟 PowerShell。驗證 Python 版本和 pip 版本。

    python --version
    
    pip --version
    
  2. 使用下列指令執行 Python 程序檔。系統會將您重新導向至 Microsoft Azure 入口網站,您需要自行認證。

    python ./get-token-for-user.py
    

    Windows Powershell

  3. 驗證完成後,系統會將您重新導向至 PowerShell,並產生存取權杖。

    Azure

  4. 將存取權杖儲存在本機機器上,提供 token 名稱,並另存為 All Types 檔案類型。

    Windows Powershell

  5. 根據您的環境使用連線字串進行連線。根據公事包中的 TNS.ora 取代 hostnameaccess-token-path

    conn /@(description= (retry_count-20) (retry_delay=3) (address= (protocol=tcps) (port=1522) (host-adb. us-ashburn-1.oraclecloud. com)) (connect_data=(<hostname>))(security-(ss1_server_dn_match-yes)(TOKEN_AUTH-OAUTH)(TOKEN_LOCATION-"<access-token-path>")))
    

    您現在已順利連線至資料庫。

    資料庫連線

  6. 一次執行下列 SQL 查詢,並觀察輸出以驗證使用者和角色。

    sqlplus /nolog
    
    SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
    
    SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
    
    SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
    

    驗證使用者

    SELECT * FROM SESSION_ROLES;
    
    exit
    

    驗證角色

    您已順利使用 OAuth ME-ID 存取權杖測試 Autonomous Database 連線。

認可

其他學習資源

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

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