Microsoft와 OAuth 데이터베이스 연결 인증 EntraID

EntraID은 데이터베이스에 대한 비밀번호 없는 인증 방법입니다. 일반 자격 증명은 사용자 이름/암호를 사용하여 RDBMS를 인증합니다. EntraID에서 client_id, tenant_id, app_id_uri 및 client_secret를 사용하여 데이터베이스에 접속합니다. 이러한 값은 데이터베이스 연결 문자열에 포함됩니다.

Oracle GoldenGate는 클라이언트 암호를 GoldenGate CredentialStore에 저장하고 DBLOGIN 동안 제공함으로써 Microsoft Entra ID OAuth 인증을 지원합니다. 클라이언트 암호가 데이터베이스 암호 대신 사용됩니다.

이 구성은 Entra ID 서비스 주체를 사용한 플러그인 기반 OAuth 인증에 사용됩니다.

인증 작동 방식

GoldenGate 인증 플로우는 다음과 같습니다.

  1. GoldenGate는 DBLOGIN USERIDALIAS ali_entra_u1를 받습니다.
  2. CredentialStore에서 ali_entra_u1를 해결합니다.
  3. 항목을 Entra ID 인증서로 식별합니다.
  4. CredentialStore에서 클라이언트 암호를 읽습니다.
  5. cdb1_pdb1 접속 기술자에서 나머지 Entra ID 속성을 읽습니다.
  6. Microsoft Entra ID OAuth 인증을 사용하여 데이터베이스 세션을 설정합니다.

선행 조건

Microsoft EntraID에 대해 GoldenGate DBLOGIN를 구성하기 전에 다음 사항을 확인하십시오.

데이터베이스 접속 기술자 구성

GoldenGate에서 사용하는 EZConnect 또는 TNS 별칭에는 Entra ID 연결 속성이 포함되어야 합니다.

예:

cdb1_pdb1 =
  (DESCRIPTION =
    (ADDRESS =
      (PROTOCOL = tcps)
      (HOST = ggeastsource)
      (PORT = 15414)
    )
    (SECURITY =
      (SSL_SERVER_CERT_DN = "C=US,O=OracleCorporation,CN=sslserver1")
      (TOKEN_AUTH = AZURE_SERVICE_PRINCIPAL)
      (TENANT_ID = 443z0000-e00d-000a-8b0a-000000000000d)
      (CLIENT_ID = 00c00cb0-c0ab-0030-bcb0-0c0ca0b0fdee)
      (AZURE_DB_APP_ID_URI =
        https://ftest_cdb1_pdb1.az207oracleoutlook.onmicrosoft.com
      )
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ggeastsource.us.oracle.com)
    )
  )

연결 기술자는 비비밀 Entra ID 연결 등록 정보를 저장합니다. 클라이언트 암호는 GoldenGate CredentialStore에 별도로 저장해야 합니다.

Entra ID 인증서 추가

CLIENTSECRET 키워드를 사용하여 Entra ID 인증서를 생성합니다.

ALTER CREDENTIALSTORE ADD USER /@cdb1_pdb1
  ALIAS ali_entra_u1
  CLIENTSECRET H9pL2~vQeR7nMx3TaK8cWz1YdF4sJ_N6rP_Tx9aK

설명:

Entra ID CredentialStore 항목에는 클라이언트 암호만 포함됩니다. 데이터베이스 사용자 이름 또는 데이터베이스 비밀번호를 포함하지 않습니다.

인증서 별칭을 사용하여 로그인

인증서를 추가한 후 DBLOGIN와 함께 별칭을 사용합니다.

DBLOGIN USERIDALIAS ali_entra_u1

GoldenGate는 별칭을 분석하고 다음 인증 정보를 사용합니다.

데이터베이스 사용자 이름 및 비밀번호에 대한 요구 사항이 없습니다. 대신 GoldenGate는 Oracle 클라이언트 OAuth 세션에 클라이언트 암호를 제공합니다.

Entra ID OAuth 인증에 CLIENTSECRET를 사용합니다. 클라이언트 암호가 GoldenGate CredentialStore에 저장되는 경우 NOPASSWORD를 사용하지 마십시오.

고려사항