附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 憑證、租用戶及區間的範例值。完成實驗室時,請以雲端環境特有的值取代這些值。
將 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 專業人員和管理員。
目標
- 將 Autonomous Database 設定為使用 Microsoft Entra ID OAuth2 存取記號,並允許使用者使用 ME-ID SSO 證明資料存取 Autonomous Database。
必要條件
-
Autonomous Database 已在 OCI 中佈建。
-
具有管理員權限的 OCI IAM 識別網域租用戶。
-
任何用於測試 Autonomous Database 連線的 Oracle Database 工具,請參閱使用 Oracle Database 工具連線至 Autonomous Database 。本教學課程使用 Windows 系統新 Oracle 從屬端安裝上的 SQL*Plus 命令行介面。
-
具有管理員權限的現有 Microsoft Azure 帳戶。
作業 1:向 Microsoft Azure 應用程式註冊註冊 Oracle Autonomous Database
-
請至少以雲端應用程式管理員身分登入 Microsoft Azure 入口網站。

-
瀏覽至首頁、Azure Active Directory 、應用程式註冊以及註冊應用程式。將名稱輸入為
ADB-DB,然後按一下註冊。應用程式已經建立。
-
按一下應用程式 ID URI:新增、編輯應用程式 ID URI ,然後將 api: 取代為所提及的租用戶網域名稱,然後按一下儲存。
-
應用程式 ID URI:
<tenancy_domain_name>/appid
-
-
按一下新增範圍並輸入下列詳細資訊,然後按一下新增範圍。
-
範圍名稱:
session:scope:connect -
誰可以同意?:
Admins and users -
管理同意顯示名稱:
connect to database -
管理同意說明:
connect to database -
使用者內容顯示名稱:
connect to database -
使用者內容描述:
connect to database -
狀態:
Enabled
-
-
按一下總覽、應用程式角色、建立應用程式角色,輸入下列詳細資訊,然後按一下套用。
-
顯示名稱:
pdb.users -
允許的成員類型:
Users/Groups -
值:
pdb.users -
說明:
all user access -
要啟用此 App 角色嗎?:
Enabled

-
-
按一下應用程式角色、建立應用程式角色,輸入下列詳細資訊,然後按一下套用。
-
顯示名稱:
dba.role -
允許的成員類型:
Users/Groups -
值:
dba.role -
說明:
dba global role -
要啟用此 App 角色嗎?:
Enabled
-
-
按一下應用程式角色、建立應用程式角色,輸入下列詳細資訊,然後按一下套用。
-
顯示名稱:
hr.app -
允許的成員類型:
Applications -
值:
hr.app -
描述:
application -
要啟用此 App 角色嗎?:
Enabled
-
-
瀏覽至首頁、企業應用程式、 ADB-DB 、指派使用者與群組。
-
在新增指派下,選取使用者,然後選取您的使用者。產生存取權杖時,此指定的使用者將用於「單一登入」。
-
在選取角色下,選取 pdb.users 。
-
按一下「選取」。
-
按一下指定。
-
-
在新增指派下,選取使用者,然後選取您的使用者。產生存取權杖時,此指定的使用者將用於「單一登入」。
-
在選取角色下,選取 dba.role 。
-
按一下「選取」。
-
按一下指定。
-
作業 2:建立從屬端應用程式註冊
-
瀏覽至首頁、應用程式註冊、註冊應用程式、輸入下列詳細資訊,然後按一下註冊。
-
名稱:
ADB-Client。 -
支援的帳戶類型:
Accounts in this organizational directory only。 -
重新導向 URI :
Public client/native - http://localhost。
-
-
瀏覽至 API 權限,然後按一下新增權限。在要求 API 權限底下,選取我的組織使用的 API 、 ADB-DB 、委派權限以及權限作為
session:scope:connect,然後按一下新增權限。
-
按一下顯示 API 、應用程式 ID URI:新增、編輯應用程式 ID URI ,並以租用戶網域名稱取代 api:。

作業 3:連線至 SQL 資料庫
-
瀏覽至 Oracle Autonomous Database 並按一下資料庫動作下拉式清單,選取 SQL 並輸入下列查詢。

SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
注意:
identity_provider_type目前設為NONE。 -
執行資料庫程序,將身分識別提供者設為 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;
-
再次執行 SQL 查詢以檢查身分識別提供者。
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
注意:
identity_provider_type現在是Azure AD。 -
建立使用者 -
allusers、hrapp和角色 -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'; -
將建立階段作業授予 -
allusers和hrapp。GRANT CREATE SESSION TO allusers;GRANT CREATE SESSION TO hrapp;GRANT pdb_dba TO dba_azure;
作業 4:瀏覽至 Azure 入口網站
-
開啟 Azure Portal 並瀏覽至首頁、應用程式註冊和 ADB- 用戶端。複製應用程式 (從屬端) ID 和目錄 (租用戶) ID 。

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

工作 5:使用 MSAL Python 程式庫取得 Microsoft Access Token
-
請參閱 Python 命令檔以使用 AuthZ 流程取得存取權杖,請參閱使用 MSAL Python 程式庫取得 Microsoft Entra ID 權杖。
-
在工作 4 中取得的命令檔中取代
Client_id、Tenant_id和Scope。
工作 6:執行 Python 命令檔
-
開啟 PowerShell。驗證 Python 版本和
pip版本。python --versionpip --version -
使用下列指令執行 Python 程序檔。系統會將您重新導向至 Microsoft Azure 入口網站,您需要自行認證。
python ./get-token-for-user.py
-
驗證完成後,系統會將您重新導向至 PowerShell,並產生存取權杖。

-
將存取權杖儲存在本機機器上,提供 token 名稱,並另存為
All Types檔案類型。
-
根據您的環境使用連線字串進行連線。根據公事包中的
TNS.ora取代 hostname 和 access-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>")))您現在已順利連線至資料庫。

-
一次執行下列 SQL 查詢,並觀察輸出以驗證使用者和角色。
sqlplus /nologSELECT 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 連線。
相關連結
認可
- 作者 - Indiradarshni Balasundaram,Alex Kovuru,Anuj Tripathi
其他學習資源
瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Integrate Oracle Autonomous Database with Microsoft Entra ID
F90208-01
December 2023
Copyright © 2023, Oracle and/or its affiliates.