使用 Kerberos 認證 Autonomous Database 使用者
您可以將 Autonomous Database on Dedicated Exadata Infrastructure 設定為使用 Kerberos 網路認證協定來認證資料庫使用者。Kerberos 是強式網路認證協定。它使用私密金鑰加密,透過提供使用者對伺服器認證來啟用強式認證。
-
對 Kerberos 的 Autonomous Database on Dedicated Exadata Infrastructure 支援提供單一登入和集中式認證 Oracle 使用者的優點。Kerberos 是受信任的第三方認證系統,依賴共用的密碼。它假設協力廠商是安全的,並且提供單一登入功能、集中式密碼儲存、資料庫連結驗證,以及增強的 PC 安全性。此動作會透過 Kerberos 認證伺服器來進行。
-
Kerberos 系統圍繞著票證的概念發展。票證是一組可識別使用者或服務的電子資訊。票證會識別您和您的網路存取權限。
-
在以 Kerberos 為基礎的認證中,您會將票證要求通透地傳送至 Key Distribution Center (KDC)。Key Distribution Center 會驗證您,並授予您存取資料庫的票證。
Kerberos 認證系統的元件
提供 Kerberos 認證系統的簡介。
-
範圍會建立認證管理網域。每個範圍都有自己的 Kerberos 資料庫,其中包含該特定管理網域的使用者和服務。
-
票證由 Key Distribution Center (KDC) 發出。用戶端向資料庫伺服器出示票證,以展示其身份的真實性。每個票券都有到期和更新時間。
-
Keytabs 會儲存一或多個主要項目的長期關鍵碼。keytab 檔案是透過呼叫工具
kadmin.local
(適用於 MIT Key Distribution Center) 或ktpass
(適用於 Active Directory Key Distribution Center) 來產生。 -
主參與者是 Key Distribution Center 資料庫中的項目。每個使用者、主機或服務都會指定一個主體。主要項目是金鑰分配中心可指定回報項目的唯一識別。
-
Autonomous Database 中的 Kerberos 支援會將這些值用於構成服務主要項目名稱的各種元件:
服務主要項目的元件 | Autonomous Database 的價值 |
---|---|
kinstance |
您可以從 使用下列查詢取得
附註: 這將會是 TNS 連線字串中找到之host 參數的值。
|
kservice |
在 Autonomous Database 上,您有兩個
在您的 Autonomous Database 執行處理上啟用 Kerberos 之後,請使用下列查詢來檢視 Kerberos 服務名稱:
|
REALM |
KDC 支援的任何範圍。REALM 必須一律為大寫。
|
若要為您的 Autonomous Database 啟用 Kerberos 認證,您必須將 Kerberos 組態檔 (krb.conf
) 和服務金鑰表檔案 (v5srvtab
) 保持在就緒狀態。如需有關這些檔案和取得這些檔案之步驟的詳細資訊,請參閱設定 Kerberos 認證。
關於 Autonomous Database 上 Kerberos 認證的注意事項
在繼續對 Autonomous Database on Dedicated Exadata Infrastructure 進行 Kerberos 認證之前,請先檢閱下列注意事項:
- 如果為您的 Autonomous Database 啟用 Kerberos 認證,您仍然可以使用以密碼為基礎的資料庫認證。
- 您的 Autonomous Database 在任何時間都只能使用一個外部驗證方法。也就是說,您只能隨時啟用 Oracle Cloud Infrastructure (IAM)、Centrally Managed User with Active Directory (CMU-AD)、Azure AD 或 Kerberos 認證配置。
附註:
唯一的例外是,您可以在 CMU-AD 上設定 Kerberos 認證,為 Microsoft Active Directory 使用者提供 CMU-AD Kerberos 認證。 - 下列工具不支援 Kerberos 認證:
- Oracle Database API for MongoDB
- Oracle REST Data Services
- Oracle Machine Learning
- APEX
- Oracle Graph 工作室
- Oracle Database Actions
- 您可以啟用 Kerberos 認證來認證 ADMIN 使用者。您可以使用 Oracle Cloud Infrastructure (OCI) 主控台的「重設密碼」功能來重設 ADMIN 使用者的密碼,如果損毀的 keytab 檔案導致 ADMIN 使用者的認證失敗,請重新取得存取權。
- Autonomous Database 版本 19.27 或更新版本的 TCP 協定支援 Kerberos 認證。
- DB_LINKs 和具備 Autonomous Data Guard 的資料庫不支援 Kerberos 認證。
在 Autonomous Database 上啟用 Kerberos 認證
-
由於一個 Autonomous Database 在任何指定時間只能啟用一個外部認證配置,因此請執行
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION
程序來停用任何已為資料庫啟用的外部認證配置。若要執行此程序,您必須以 ADMIN 使用者身分登入,或具備DBMS_CLOUD_ADMIN
的EXECUTE
權限。BEGIN DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION; END; /
-
取得 Kerberos 組態檔:
krb.conf
,服務金鑰表格檔v5srvtab
。如需這些檔案和取得這些檔案之必要步驟的詳細資訊,請參閱Oracle Database 19c Security Guide 中的 Configuring Kerberos Authentication 或 Oracle Database 23ai Security Guide 。 -
將 Kerberos 組態檔
krb.conf
和v5srvtab
複製到您物件存放區中的儲存桶。附註:
Oracle 建議您將 Kerberos 組態檔儲存在您物件存放區的專用儲存桶中。如果您使用 Oracle Cloud Infrastructure Object Store,請參閱將資料放入物件儲存,瞭解上傳檔案的詳細資訊。
-
若要啟用 Kerberos 作為 Autonomous Database 的外部驗證,請執行
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION
程序,並以params
JSON 引數傳入位置 URI。您必須將組態檔krb.conf
和v5srvtab
放在location_uri
參數中指定的「物件儲存」位置。舉例而言:BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION( type => 'KERBEROS', params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o', 'credential_name' value 'my_credential_name') ); END; /
附註:
若要為 Microsoft Active Directory 使用者提供 CMU-AD Kerberos 認證,您可以在上述範例中將type
設為CMU
,在 CMU-AD 之上啟用 Kerberos 認證。在此範例中,
namespace-string
是 Oracle Cloud Infrastructure 物件儲存命名空間,bucketname
是儲存桶名稱。如需詳細資訊,請參閱瞭解 Object Storage 命名空間。您在此步驟中使用的
credential_name
是「物件存放區」的證明資料。如果
location_uri
是預先認證的 URL,則不需要提供credential_name
。這會在您的資料庫中建立一個名為
KERBEROS_DIR
的目錄物件,並使用證明資料將 Kerberos 組態檔從「物件存放區」位置下載至目錄物件。您可以使用kerberos_service_name
參數來指定 Kerberos 服務名稱。舉例而言:BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION( type =>'KERBEROS', params => JSON_OBJECT( 'location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o', 'credential_name' value 'my_credential_name' 'kerberos_service_name' value 'oracle' )); END; /
- 啟用 Kerberos 認證之後,請移除物件存放區中的組態
krb.conf
和v5srvtab
。您可以使用本機「物件存放區」方法來移除這些檔案,或使用DBMS_CLOUD.DELETE_OBJECT
從「物件存放區」刪除檔案。
如需有關物件儲存的詳細資訊,請參閱瀏覽至 Oracle Cloud Infrastructure Object Storage and Create Bucket 。
如需詳細資訊,請參閱ENABLE_EXTERNAL_AUTHENTICATION 程序。
在 Autonomous Database 上停用 Kerberos 認證
在您的資料庫上啟用任何其他外部認證配置之前,您必須先停用執行 DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION
程序的 Kerberos 認證。
DBMS_CLOUD_ADMIN
的 EXECUTE
權限。 BEGIN
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
附註:
若要為 Microsoft Active Directory 使用者提供 CMU-AD Kerberos 認證,您必須繼續設定 CMU-AD 認證而不停用 Kerberos 認證。