使用 Kerberos 認證自治式 AI 資料庫使用者
您可以在專用 Exadata 基礎架構上設定自治式 AI 資料庫,以使用 Kerberos 網路認證協定來認證資料庫使用者。Kerberos 是強式網路認證協定。它使用私密金鑰加密,以提供使用者對伺服器的認證方式啟用強式認證。
-
Kerberos 的專用 Exadata 基礎架構上的自治式 AI 資料庫提供 Oracle 使用者的單一登入和集中式認證的優點。Kerberos 是信任的第三方認證系統,依賴共用密碼。它假定第三方是安全的,並且提供單一登入功能、集中式密碼儲存、資料庫連結認證和增強的 PC 安全。它會透過 Kerberos 認證伺服器來進行。
-
Kerberos 系統圍繞票券的概念。票證是一組可識別使用者或服務的電子資訊。票證會識別您和您的網路存取權限。
-
在以 Kerberos 為基礎的驗證中,您會將票證的要求通透地傳送到金鑰分配中心 (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) 來產生。 -
Principals 是 Key Distribution Center 資料庫中的項目。每個使用者、主機或服務都會獲得主體。主要項目是 Key Distribution Center 可以指定擱置中活動的唯一識別。
-
自治式 AI 資料庫中的 Kerberos 支援會將這些值用於構成服務主要項目名稱的各種元件:
| 服務主要項目的元件 | 自主 AI 資料庫的價值 |
|---|---|
kinstance |
您可以從 使用下列查詢取得 注意:這將會是 TNS 連線字串中找到之 |
kservice |
在自治式 AI 資料庫中,您有兩個
您的自治式 AI 資料庫執行處理啟用 Kerberos 之後,請使用下列查詢以檢視 Kerberos 服務名稱: |
REALM |
您的 KDC 支援的所有範圍。REALM 必須一律為大寫。 |
若要為您的自治式 AI 資料庫啟用 Kerberos 認證,您必須備妥 Kerberos 組態檔 (krb.conf) 和服務金鑰表格檔案 (v5srvtab)。如需有關這些檔案和取得這些檔案之步驟的詳細資訊,請參閱設定 Kerberos 認證。
自治式 AI 資料庫的 Kerberos 認證注意事項
在專用 Exadata 基礎架構上的自治式 AI 資料庫上繼續進行 Kerberos 認證之前,請複查下列注意事項:
-
如果您為自治式 AI 資料庫啟用 Kerberos 認證,您仍然可以對資料庫使用以密碼為基礎的資料庫認證。
-
您隨時只能對自治式 AI 資料庫使用一種外部認證方法。也就是說,您只能隨時啟用 Oracle Cloud Infrastructure (IAM)、具備 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 Studio
-
Oracle Database Actions
-
-
您可以啟用 Kerberos 認證來認證 ADMIN 使用者。如果損毀的 keytab 檔案導致 ADMIN 使用者的認證失敗,您可以使用 Oracle Cloud Infrastructure (OCI) 主控台上的「重設密碼」功能,重設 ADMIN 使用者的密碼並重新取得存取權。
-
自治式 AI 資料庫版本 19.27 或更新版本的 TCP 協定支援 Kerberos 認證。
-
DB_LINKs 和具有自治式資料保全的資料庫不支援 Kerberos 認證。
對自治式 AI 資料庫啟用 Kerberos 認證
請依照下列步驟,啟用專用 Exadata 基礎架構上自治式 AI 資料庫的 Kerberos 認證:
-
由於任何指定時間內都只能對自治式 AI 資料庫啟用一個外部認證配置,因此請執行
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 或 Oracle Database 26ai Security Guide 中的 Configuring Kerberos Authentication 。 -
將 Kerberos 組態檔
krb.conf和v5srvtab複製到物件存放區中的儲存桶。注意:Oracle 建議您將 Kerberos 組態檔儲存在物件存放區的專用儲存桶中。
如果您使用 Oracle Cloud Infrastructure Object Store,請參閱將資料輸入物件儲存,瞭解上傳檔案的詳細資訊。
-
若要啟用 Kerberos 作為自治式 AI 資料庫的外部認證,請執行
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION程序,然後使用paramsJSON 引數傳入位置 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是儲存桶名稱。請參閱瞭解物件儲存命名空間以瞭解詳細資訊。您在此步驟中使用的
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 並建立儲存桶。
請參閱 ENABLE_EXTERNAL_AUTHENTICATION Procedure 以瞭解詳細資訊。
停用自治式 AI 資料庫上的 Kerberos 認證
在啟用資料庫上的任何其他外部認證配置之前,您必須先停用執行 DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION 程序的 Kerberos 認證。
若要執行此程序,您必須以 ADMIN 使用者身分登入,或具有 DBMS_CLOUD_ADMIN 的 EXECUTE 權限。
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
請參閱 DISABLE_EXTERNAL_AUTHENTICATION 程序以瞭解詳細資訊。
注意:若要為 Microsoft Active Directory 使用者提供 CMU-AD Kerberos 認證,您必須繼續設定 CMU-AD 認證,而不要停用 Kerberos 認證。