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 인증 플로우는 다음과 같습니다.
- GoldenGate는
DBLOGIN USERIDALIAS ali_entra_u1를 받습니다. - CredentialStore에서
ali_entra_u1를 해결합니다. - 항목을 Entra ID 인증서로 식별합니다.
- CredentialStore에서 클라이언트 암호를 읽습니다.
cdb1_pdb1접속 기술자에서 나머지 Entra ID 속성을 읽습니다.- Microsoft Entra ID OAuth 인증을 사용하여 데이터베이스 세션을 설정합니다.
선행 조건
Microsoft EntraID에 대해 GoldenGate DBLOGIN를 구성하기 전에 다음 사항을 확인하십시오.
- Microsoft Entra 응용 프로그램 및 서비스 주체가 구성되었습니다.
- 서비스 주체는 대상 Oracle AI Database에 연결할 수 있는 권한이 부여됩니다.
- Oracle 클라이언트 접속 기술자는 필수 Entra ID 속성을 포함합니다.
- GoldenGate CredentialStore가 사용 가능하고 초기화되었습니다.
- 클라이언트 암호는 CredentialStore에서 등록할 수 있습니다.
데이터베이스 접속 기술자 구성
GoldenGate에서 사용하는 EZConnect 또는 TNS 별칭에는 Entra ID 연결 속성이 포함되어야 합니다.
TOKEN_AUTH=AZURE_SERVICE_PRINCIPALTENANT_IDCLIENT_IDAZURE_DB_APP_ID_URI
예:
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
설명:
/@cdb1_pdb1는 접속 기술자를 식별합니다.ali_entra_u1은 GoldenGate 인증서 별칭입니다.CLIENTSECRET은 자격 증명을 Entra ID OAuth 자격 증명으로 식별합니다.CLIENTSECRET뒤에 오는 값은 Entra ID 애플리케이션 클라이언트 암호입니다.
Entra ID CredentialStore 항목에는 클라이언트 암호만 포함됩니다. 데이터베이스 사용자 이름 또는 데이터베이스 비밀번호를 포함하지 않습니다.
인증서 별칭을 사용하여 로그인
인증서를 추가한 후 DBLOGIN와 함께 별칭을 사용합니다.
DBLOGIN USERIDALIAS ali_entra_u1
GoldenGate는 별칭을 분석하고 다음 인증 정보를 사용합니다.
- 연결 기술자의
CLIENT_ID,TENANT_ID및AZURE_DB_APP_ID_URI - CredentialStore에서
CLIENTSECRET
데이터베이스 사용자 이름 및 비밀번호에 대한 요구 사항이 없습니다. 대신 GoldenGate는 Oracle 클라이언트 OAuth 세션에 클라이언트 암호를 제공합니다.
Entra ID OAuth 인증에 CLIENTSECRET를 사용합니다. 클라이언트 암호가 GoldenGate CredentialStore에 저장되는 경우 NOPASSWORD를 사용하지 마십시오.
고려사항
- 클라이언트 암호는
CLIENT_ID로 식별된 Entra ID 응용 프로그램에 해당해야 합니다. TENANT_ID,CLIENT_ID및AZURE_DB_APP_ID_URI값은 Entra ID 애플리케이션 및 대상 데이터베이스 구성과 일치해야 합니다.- 클라이언트 암호는 GoldenGate 별칭과 연관되고, 다른 OAuth 매개변수는 데이터베이스 접속 기술자와 연관됩니다.
- Entra ID 인증서를 생성할 때는 데이터베이스 사용자 이름 또는 비밀번호를 포함하지 마십시오.
- 배치에 필요한 각 클라이언트 암호 또는 대상 접속에 대해 별도의 인증서 별칭을 사용합니다.
- 명령 실행 중 클라이언트 암호를 보호하고 스크립트, 명령 내역 또는 진단 출력에 기록하지 않도록 합니다.