Base Database Service에서 Azure Active Directory 인증 사용
Microsoft Azure Active Database 인증 및 권한 부여를 사용하여 Azure AD 사용자가 Azure AD 인증서를 사용하여 데이터베이스에 액세스할 수 있도록 Base Database Service에서 Oracle Database를 구성할 수 있습니다.
Azure AD와 Base Database Service 통합 정보
Microsoft Azure Active Directory(Azure AD) 사용자가 Azure OAuth2
액세스 토큰을 사용하여 연결할 수 있도록 Base Database Service 인스턴스의 Oracle Database를 구성할 수 있습니다.
필요 조건
네트워크 설정
데이터베이스에서 Azure AD 인증을 사용하기 전에 네트워킹 서비스를 사용하여 서비스 게이트웨이, 경로 규칙 및 송신 보안 규칙을 VCN(가상 클라우드 네트워크) 및 데이터베이스 리소스가 상주하는 서브넷에 추가해야 합니다. 다음 단계를 수행하여 NAT 게이트웨이를 사용하여 Azure AD에 대한 아웃바운드 접속을 구성합니다.
- 서비스 게이트웨이 생성의 지침에 따라 데이터베이스 리소스가 상주하는 VCN에서 NAT 게이트웨이를 생성합니다.
- 서비스 게이트웨이를 생성한 후 데이터베이스 리소스가 상주하는 각 서브넷(VCN)에 경로 규칙 및 송신 보안 규칙을 추가하여 해당 리소스가 게이트웨이를 사용하여 Azure AD 인스턴스에서 Azure AD 인증을 사용할 퍼블릭 키를 얻을 수 있도록 합니다.
- 서브넷의 서브넷 세부 정보 페이지로 이동합니다.
- 서브넷 정보 탭에서 서브넷의 경로 테이블 이름을 눌러 경로 테이블 세부정보 페이지를 표시합니다.
- 기존 경로 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상: 0.0.0.0/0
- 대상 유형: NAT 게이트웨이
- 대상: VCN에서 방금 생성한 서비스 게이트웨이의 이름입니다.
해당 규칙이 없는 경우 경로 규칙 추가를 누르고 해당 특성을 가진 경로 규칙을 추가합니다.
- 서브넷에 대한 서브넷 세부정보 페이지로 돌아갑니다.
- 서브넷의 보안 목록 테이블에서 서브넷의 보안 목록 이름을 눌러 해당 보안 목록 세부정보 페이지를 표시합니다.
- 사이드 메뉴의 리소스에서 송신 규칙을 누릅니다.
- 기존 송신 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상 유형: CIDR
- 대상: 0.0.0.0/0
- IP 프로토콜: TCP
- 소스 포트 범위: 443
- Destination Port Range: 모두
- 해당 규칙이 없으면 Add Egress Rules를 누르고 이러한 특성을 가진 송신 규칙을 추가합니다.
TLS 구성
데이터베이스 클라이언트에서 데이터베이스 서버로 Azure AD 토큰을 전송할 때는 TLS 연결을 설정해야 합니다. 기준 데이터베이스 서비스 인스턴스에 대한 데이터베이스 인증서가 있는 TLS 전자 지갑은 WALLET_ROOT 위치 아래에 저장되어야 합니다. 다음과 같이 tls 디렉토리를 생성합니다. WALLET_ROOT/<PDB GUID>/tls
데이터베이스 클라이언트와 서버 간에 TLS를 구성할 때는 몇 가지 옵션을 고려해야 합니다.
- 자체 서명된 데이터베이스 서버 인증서와 일반적으로 알려진 인증 기관에서 서명한 데이터베이스 서버 인증서를 사용합니다.
- 단방향 TLS(TLS)와 상호 또는 양방향 TLS(mTLS) 비교
- 전자 지갑이 있거나 없는 클라이언트입니다.
자체 서명 인증서: 자체 서명된 인증서를 사용하는 것은 내부적으로 IT 리소스에 대한 일반적인 관행입니다. 사용자가 직접 생성할 수 있고 무료이기 때문입니다. 이 리소스(이 경우 데이터베이스 서버)에는 데이터베이스 클라이언트에 대해 자체 인증을 수행할 수 있는 자체 서명 인증서가 있습니다. 자체 서명된 인증서와 루트 인증서는 데이터베이스 서버 전자 지갑에 저장됩니다. 데이터베이스 클라이언트가 데이터베이스 서버 인증서를 인식할 수 있으려면 클라이언트에서도 루트 인증서의 복사본이 필요합니다. 이 자체 생성된 루트 인증서는 클라이언트측 전자 지갑에 저장하거나 클라이언트 시스템 기본 인증서 저장소에 설치할 수 있습니다(Windows 및 Linux만 해당). 세션이 설정되면 데이터베이스 클라이언트는 데이터베이스 서버에서 보낸 인증서가 동일한 루트 인증서로 서명되었는지 확인합니다.
알려진 인증 기관: 일반적으로 알려진 루트 인증 기관을 사용하면 루트 인증서가 클라이언트 시스템 기본 인증서 저장소에 이미 저장된 것일 가능성이 높습니다. 공통 루트 인증서인 경우 클라이언트가 루트 인증서를 저장하기 위한 추가 단계는 없습니다. 단점은 일반적으로 이와 관련된 비용이 있다는 것입니다.
단방향 TLS: 표준 TLS 세션에서 서버만 자체 인증을 위해 클라이언트에 인증서를 제공합니다. 클라이언트는 서버에 자신을 인증하기 위해 별도의 클라이언트 인증서를 가질 필요가 없습니다(HTTPS 세션 설정 방법과 유사). 데이터베이스에는 서버 인증서를 저장하기 위한 전자 지갑이 필요하지만 클라이언트가 서버 인증서 서명에 사용되는 루트 인증서만 있으면 됩니다.
양방향 TLS(상호 TLS, mTLS라고도 함): mTLS에서 클라이언트와 서버 모두 서로에게 제공되는 ID 인증서를 가집니다. 대부분의 경우 동일한 루트 인증서가 이 두 인증서에 모두 서명되어 데이터베이스 서버 및 클라이언트에서 동일한 루트 인증서를 사용하여 다른 인증서를 인증할 수 있습니다. 사용자 ID가 인증서를 통해 데이터베이스 서버에 의해 인증되기 때문에 mTLS를 사용하여 사용자를 인증하는 경우도 있습니다. 이는 Azure AD 토큰을 전달하는 데 필요하지 않지만 Azure AD 토큰을 전달할 때 사용할 수 있습니다.
전자 지갑이 있는 클라이언트: mTLS를 사용하여 클라이언트 인증서를 저장할 때는 클라이언트 전자 지갑이 필수입니다. 그러나 루트 인증서는 동일한 전자 지갑 또는 시스템 기본 인증서 저장소에 저장할 수 있습니다.
- 클라이언트가 자체 인증서를 가지고 있지 않은 경우 단방향 TLS가 구성되고 있습니다.
- 데이터베이스 서버 인증서에 서명한 루트 인증서는 시스템 기본 인증서 저장소에 저장됩니다. 서버 인증서가 공통 인증 기관에서 서명된 경우 루트 인증서가 이미 있는 것 같습니다. 자체 서명된 인증서인 경우 클라이언트 전자 지갑 사용을 피하기 위해 루트 인증서를 시스템 기본 인증서 저장소에 설치해야 합니다.
데이터베이스 클라이언트와 데이터베이스 서버 간에 TLS를 구성하는 방법에 대한 자세한 내용은 Configuring Transport Layer Security Authentication을 참조하십시오.
자체 서명된 인증서를 사용하도록 선택하고 추가 전자 지갑 관련 작업을 수행하려면 Database Security Guide의 orapki
CLI(명령줄 인터페이스) 참조 설명서를 참조하십시오. PKI(공개 키 기반 구조) 요소 관리를 참조하십시오.
Azure AD와의 통합을 위한 기준 데이터베이스 서비스 구성
Azure AD와 Base Database Service를 통합하려면 데이터베이스를 Azure AD에 등록해야 데이터베이스가 Azure AD 공개 키를 요청할 수 있습니다.The Base Database Service integration with the Azure AD requires the database to be registered with Azure AD so that the database can request the Azure AD public key.
Azure AD와의 통합을 위해 기준 데이터베이스 서비스를 구성하려면 먼저 필요 조건 섹션에서 필요 조건을 완료한 다음 Oracle Database Security Guide의 Configuring the Oracle Database for Microsoft Azure AD Integration 섹션에 있는 지침을 따라야 합니다.
Oracle Database 스키마 및 롤 매핑
Azure AD 사용자는 하나의 데이터베이스 스키마에 매핑되고 선택적으로 하나 이상의 데이터베이스 역할에 매핑됩니다.Azure AD users will be mapped to one database schema and optionally to one or more database roles.
Oracle Database 스키마 및 롤을 Azure AD 사용자에게 매핑하는 옵션에 대한 자세한 내용은 Oracle Database Security Guide의 Oracle Database 스키마 및 롤 매핑 섹션을 참조하십시오.
Azure AD에 대한 클라이언트 접속 구성
Azure AD 토큰을 사용하여 Base Database Service 인스턴스와 연결하도록 클라이언트를 구성할 수 있는 다양한 방법이 있습니다.There are many ways to configure a client to connect with a Base Database Service instance using Azure AD tokens.
Azure AD 클라이언트 접속 구성에 대한 자세한 내용은 Oracle Database Security Guide의 Azure AD 클라이언트 접속을 Oracle Database에 구성 섹션을 참조하십시오.
Azure Endpoint의 접근성 테스트
연결 테스트를 실행하여 기준 데이터베이스 인스턴스가 Azure AD 끝점에 액세스할 수 있는지 확인할 수 있습니다.You can ensure that your Base Database instance can access the Azure AD endpoint by running a connection test.
접속 테스트에 대한 자세한 내용은 Oracle Database Security Guide의 Testing the Accessibility of the Azure Endpoint 섹션을 참조하십시오.
연결 문제 해결에 사용되는 추적 파일
추적 파일을 사용하여 Azure AD 연결로 Base Database Service 클라이언트 연결 문제를 해결할 수 있습니다.
추적 파일 및 토큰 인증을 위한 클라이언트 추적 설정에 대한 자세한 내용은 Oracle Database Security Guide의 Trace Files for Troubleshooting Oracle Database Client Connections with Azure AD 절을 참조하십시오.