자율운영 AI 데이터베이스에 대해 Microsoft Azure Active Directory 사용자 인증 및 권한 부여

Microsoft Azure AD 사용자가 Azure OAuth2 액세스 토큰을 사용하여 접속하도록 전용 Exadata 인프라 인스턴스의 Oracle Autonomous AI Database를 구성할 수 있습니다.

전용 Exadata 인프라에서 Oracle Autonomous AI Database와 Microsoft Azure AD 통합 정보

Oracle Autonomous AI Database on Dedicated Exadata Infrastructure 및 Microsoft Azure AD는 사용자 및 애플리케이션이 Azure AD 자격 증명을 사용하여 데이터베이스에 연결할 수 있도록 구성할 수 있습니다.

Azure AD users and applications can log in with Azure AD Single Sign On (SSO) credentials to access the database. This is done with an Azure AD OAuth2 access token that the user or application first requests from Azure AD. 이 OAuth2 액세스 토큰은 사용자 ID 및 데이터베이스 액세스 정보를 포함하고 데이터베이스로 전송됩니다. 다중 요소 및 암호 없는 인증 구성에 대한 자세한 내용은 Microsoft 문서 Azure Active Directory에 대한 암호 없는 인증 옵션을 참조하십시오.

다음 Oracle Database 환경에서 이 통합을 수행할 수 있습니다.

Azure AD 구성에 대한 지침은 "Oracle Database"라는 용어를 사용하여 이러한 환경을 포괄합니다.

이러한 유형의 통합을 통해 Azure AD 사용자는 전용 Exadata 인프라 인스턴스의 Oracle Autonomous AI Database에 액세스할 수 있습니다. Azure AD 사용자 및 애플리케이션은 Azure AD SSO(Single Sign On) 자격 증명을 사용하여 로그인하여 Azure AD OAuth2 액세스 토큰을 가져와 데이터베이스로 전송할 수 있습니다.

Azure AD 관리자는 Azure AD를 사용하여 전용 Exadata 인프라에서 Oracle Autonomous AI Database를 생성하고 등록합니다. Azure AD에서는 이를 앱 등록이라고 하며, 이는 애플리케이션 등록의 약어입니다. 이는 Azure AD가 Azure AD를 사용 중인 소프트웨어에 대해 알아야 하는 디지털 정보입니다. 또한 Azure AD 관리자는 Azure AD에서 데이터베이스 앱 등록에 대한 애플리케이션(앱) 역할을 만듭니다. App roles connect Azure users, groups, and applications to database schemas and roles. The Azure AD administrator assigns Azure AD users, groups, or applications to the app roles. 이러한 앱 롤은 데이터베이스 전역 스키마, 전역 롤 또는 스키마와 롤 모두에 매핑됩니다. An Azure AD user, group, or application that is assigned to an app role will be mapped to a database global schema, global role, or to both a schema and a role. Oracle 전역 스키마는 Azure AD 사용자에게만 매핑될 수도 있습니다. An Azure AD guest user (non-organization user) or an Azure AD service principal (application) can only be mapped to a database global schema through an Azure AD app role. Oracle 전역 롤은 Azure 앱 롤에서만 매핑할 수 있으며 Azure 사용자로부터 매핑할 수 없습니다.

Oracle APEX, Database Actions, Oracle Graph Studio, Oracle Database API for MongoDB 등 Oracle Autonomous AI Database on Dedicated Exadata Infrastructure 도구는 Azure AD 토큰을 사용한 데이터베이스 연결과 호환되지 않습니다.

Azure AD 토큰을 지원하도록 업데이트된 도구 및 애플리케이션은 Azure AD로 직접 사용자를 인증하고 전용 Exadata 인프라 인스턴스의 Oracle Autonomous AI Database에 데이터베이스 액세스 토큰을 전달할 수 있습니다. 파일 위치에서 Azure AD 토큰을 사용하도록 SQL*Plus와 같은 기존 데이터베이스 도구를 구성할 수 있습니다. In these cases, Azure AD tokens can be retrieved using tools like Microsoft PowerShell or Azure CLI and put into a file location. Azure AD OAuth2 데이터베이스 액세스 토큰은 만료 시간과 함께 발행됩니다. Oracle Database 클라이언트 드라이버는 토큰을 데이터베이스에 전달하기 전에 토큰이 적합한 형식이고 만료되지 않았는지 확인합니다. 데이터베이스에 대한 토큰 범위가 지정됩니다. 즉, 토큰이 사용될 데이터베이스에 대한 토큰 정보가 토큰에 있습니다. 데이터베이스 Azure AD 앱 등록에서 Azure AD 주체가 할당된 앱 역할은 액세스 토큰의 일부로 포함됩니다. Azure AD 토큰의 디렉토리 위치는 사용자가 토큰 파일을 위치에 쓰고 데이터베이스 클라이언트가 이러한 파일을 검색할 수 있는 충분한 권한만 가져야 합니다(예: 사용자가 읽고 쓰기만 함). 토큰은 데이터베이스에 대한 액세스를 허용하므로 파일 시스템 내에서 보호되어야 합니다.

Azure AD users can request a token from Azure AD using a number of methods to open an Azure login window to enter their Azure AD credentials.

전용 Exadata 인프라의 Oracle Autonomous AI Database는 다음과 같은 Azure AD 주체를 나타내는 토큰을 허용합니다.

전용 Exadata 인프라의 Oracle Autonomous AI Database는 다음과 같은 Azure AD 인증 플로우를 지원합니다.

자율운영 AI 데이터베이스와 Microsoft Azure AD 통합의 아키텍처

Microsoft Azure Active Directory 토큰은 확장과 함께 OAuth2 표준을 따릅니다. Azure AD 토큰을 사용하여 Oracle 데이터베이스에 액세스하는 것은 OCI IAM 토큰을 사용하는 것과 비슷합니다. 자세한 설명은 보안 가이드에서 Microsoft Azure AD Integration with an Oracle Database의 아키텍처를 참조하십시오.

자율운영 AI 데이터베이스에 Azure AD 사용자 매핑

자율운영 AI 데이터베이스 인스턴스에 대해 인증하려면 먼저 Microsoft Azure 사용자를 자율운영 AI 데이터베이스 스키마에 매핑하고 역할을 통해 필요한 권한을 가져야 합니다. Microsoft Azure에서 사용자, 그룹 및 애플리케이션을 매핑하는 다양한 방법에 대한 자세한 내용은 보안 가이드Azure AD Users Mapping to the Oracle Database을 참조하십시오.

자율운영 AI 데이터베이스에 연결하기 위한 사용 사례Azure AD 사용

Oracle Database는 Microsoft Azure Active Directory를 사용하여 자율운영 AI 데이터베이스 인스턴스에 접속하기 위한 세 가지 유형의 사용 사례를 지원합니다. 자세한 내용은 Azure AD를 사용하여 Oracle Database에 연결하는 데 사용 사례를 참고하세요.

전용 Exadata 인프라에서 Oracle Autonomous AI Database로 Microsoft Azure AD ID를 인증하는 일반적인 프로세스

Oracle Database 관리자 및 Microsoft Azure AD 관리자는 Azure AD 사용자가 Azure AD OAuth2 액세스 토큰을 사용하여 데이터베이스에 연결할 수 있도록 하는 역할을 수행합니다.

일반 프로세스는 다음과 같습니다.

  1. Oracle Database 관리자는 Oracle Database 환경이 Microsoft Azure AD 통합에 대한 요구사항을 충족하는지 확인합니다. Microsoft Azure AD 통합을 위한 Oracle Database 요구 사항을 참고하세요.

  2. Azure AD 관리자는 데이터베이스에 대한 Azure AD 앱 등록을 생성하고, Oracle Database 관리자는 데이터베이스가 데이터베이스 액세스를 위해 Azure AD 토큰을 사용할 수 있게 합니다.

    앱 등록 프로세스의 일부로 Azure AD 관리자는 Azure 사용자, 그룹 및 애플리케이션 간의 Oracle Database 스키마 및 역할 간의 매핑에 사용할 Azure 앱 역할을 만듭니다.

  3. Oracle Database 관리자는 전역 스키마를 생성하여 Azure AD 사용자(배타적 스키마 매핑) 또는 Azure 앱 롤(공유 스키마 매핑)에 매핑합니다. Azure AD 사용자 또는 응용 프로그램은 하나의 스키마에 매핑되어야 합니다.

  4. 선택적으로 Oracle 관리자는 전역 Oracle Database 롤을 생성하고 Azure 앱 롤에 매핑합니다.

  5. 전용 Exadata 인프라 인스턴스의 Oracle Autonomous AI Database와 연결하려는 Azure AD 최종 사용자는 클라이언트 애플리케이션을 Azure AD 클라이언트로 등록합니다(Oracle 데이터베이스 등록 방식과 유사).

    The Azure AD client will have a client identification and a client secret, unless the application client is public. 응용 프로그램 클라이언트가 공용이면 응용 프로그램 클라이언트 식별만 필요합니다.

  6. Azure AD 최종 사용자(데이터베이스 관리자가 될 수 있음)는 PowerShell 또는 Azure 명령줄 인터페이스와 같은 유틸리티를 사용하여 연결하여 OAuth2 데이터베이스 액세스 토큰을 검색하고 로컬 파일 디렉토리에 저장합니다. An application can also request an Azure AD OAuth2 access token directly from Azure AD and pass it through a database client API. Azure AD OAuth2 토큰 전달에 대한 자세한 내용은 다음 Oracle Database 클라이언트 설명서를 참조하십시오.

  7. 전용 Exadata 인프라 인스턴스의 Oracle Autonomous AI Database에 연결되면 Azure AD 최종 사용자가 필요에 따라 데이터베이스 작업을 수행합니다.

자율운영 AI 데이터베이스에서 Azure AD 인증 사용

Azure AD 관리자 및 자율운영 AI 데이터베이스 관리자는 자율운영 AI 데이터베이스에서 Azure AD 인증을 구성하는 단계를 수행합니다.

필수 조건

Microsoft Azure AD와 전용 Exadata 인프라의 Oracle Autonomous AI Database를 통합하려면 다음이 필요합니다.

  1. 자율운영 AI 데이터베이스는 버전 19.18 이상입니다.

  2. TLS 포트 2484의 데이터베이스에 대한 연결입니다. 비TLS 접속은 지원되지 않습니다.

  3. 데이터베이스가 Azure AD 공개 키를 요청할 수 있도록 Azure AD에 대한 아웃바운드 네트워크 연결.

  4. Azure AD에 등록할 자율운영 AI 데이터베이스입니다.

  5. Exadata Cloud@Customer 배치의 경우 환경의 HTTP 프록시 설정에서 데이터베이스가 Azure AD를 사용하도록 허용해야 합니다.

    해당 설정은 콘솔을 사용하여 Cloud@Customer에서 Exadata Database Service 프로비저닝에 설명된 대로 Exadata Cloud@Customer 인프라를 생성하는 동안 플리트 관리자가 정의합니다.

주: HTTP 프록시를 포함한 네트워크 구성은 Exadata 인프라가 활성화 필요 상태가 될 때까지만 편집할 수 있습니다. 일단 활성화되면 해당 설정을 편집할 수 없습니다.

이미 프로비전된 Exadata 인프라에 대해 HTTP 프록시를 설정하려면 My Oracle Support에서 SR(서비스 요청)이 필요합니다. 자세한 내용은 My Oracle Support에서 서비스 요청 생성을 참조하십시오.

절차

다음 작업을 구현하여 Microsoft Azure AD용 자율운영 AI 데이터베이스를 구성합니다.

  1. Microsoft Azure AD 테넌시에 자율운영 AI 데이터베이스 인스턴스 등록하기: Azure AD 관리자 권한이 있는 사용자는 Microsoft Azure AD를 사용하여 Microsoft Azure AD 테넌시에 Oracle Database 인스턴스를 등록합니다. 보안 가이드Microsoft Azure AD 테넌시에 Oracle Autonomous AI Database 인스턴스 등록하기를 참고하세요.

  2. Microsoft Azure AD v2 액세스 토큰 사용: 조직에서 v1 토큰 대신 Microsoft Azure AD v2 액세스 토큰을 사용하는 경우 토큰에서 upn: 클레임을 지원하려면 Azure AD에서 추가 변경이 필요할 수 있습니다. Microsoft Azure AD v2 액세스 토큰 사용보안 설명서Azure AD 액세스 토큰 버전 확인을 참조하십시오.

  3. Microsoft Azure AD에서 앱 롤 관리하기: Azure AD에서는 Azure AD 사용자 및 그룹에 지정되고 Oracle Database 전역 스키마 및 롤에 매핑될 앱 롤을 생성하고 관리할 수 있습니다. 보안 설명서Microsoft Azure AD에서 앱 롤 관리를 참조하십시오.

  4. NAT 게이트웨이를 사용하여 Microsoft Azure AD에 대한 아웃바운드 연결을 구성합니다.

    Oracle Cloud Infrastructure 문서NAT 게이트웨이 생성 지침에 따라 자율운영 AI 데이터베이스 리소스가 상주하는 VCN(가상 클라우드 네트워크)에 NAT 게이트웨이를 생성합니다.

    NAT 게이트웨이를 생성한 후 자율운영 AI 데이터베이스 리소스가 상주하는 VCN의 각 서브넷에 경로 규칙 및 송신 보안 규칙을 추가하여 해당 리소스가 게이트웨이를 사용하여 Azure AD 인스턴스에서 퍼블릭 키를 얻을 수 있도록 합니다.

    1. 서브넷의 서브넷 세부 정보 페이지로 이동합니다.

    2. 서브넷 정보 탭에서 서브넷의 경로 테이블 이름을 눌러 해당 경로 테이블 세부정보 페이지를 표시합니다.

    3. 기존 경로 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.

      • 대상: 0.0.0.0/0

      • 대상 유형: NAT 게이트웨이

      • 대상: VCN에서 방금 생성한 NAT 게이트웨이의 이름입니다.

      해당 규칙이 없는 경우 경로 규칙 추가를 누르고 해당 특성을 가진 경로 규칙을 추가합니다.

    4. 서브넷에 대한 서브넷 세부정보 페이지로 돌아갑니다.

    5. 서브넷의 보안 목록 테이블에서 서브넷의 보안 목록 이름을 눌러 해당 보안 목록 세부정보 페이지를 표시합니다.

    6. 사이드 메뉴의 리소스에서 송신 규칙을 누릅니다.

    7. 기존 송신 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.

      • 대상 유형: CIDR

      • 대상:0.0.0.0/0

      • IP 프로토콜:TCP

      • 소스 포트 범위:443

      • 대상 포트 범위:모두

      해당 규칙이 없는 경우 송신 규칙 추가를 누르고 이러한 특성을 가진 송신 규칙을 추가합니다.

  5. Entra ID 끝점의 접근성 테스트

    보안 설명서Azure 끝점의 접근성 테스트에 설명된 단계에 따라 Oracle Database 인스턴스가 Entra ID 끝점에 액세스할 수 있는지 확인합니다.

    데이터베이스가 Microsoft Entra ID 끝점에 연결할 수 없는 경우 ACL 정책을 설정한 후에도 위에 나열된 필요 조건을 확인하여 필요 조건에 따라 네트워크를 올바르게 구성했는지 확인합니다. 문제가 지속되면 네트워킹을 검토하여 데이터베이스 인스턴스가 MS Entra ID 엔드포인트에 연결할 수 있는지 확인하십시오.

  6. 자율운영 AI 데이터베이스에 대한 외부 ID 제공자로 Azure AD 구성:

    기본적으로 자율운영 AI 데이터베이스 및 자율운영 컨테이너 데이터베이스는 Oracle Cloud Infrastructure(IAM) 인증 및 권한 부여를 통해 사용자를 연결하도록 구성됩니다. 또한 응용 프로그램 DBA는 이를 CMU-AD(Centrally Managed Users with Active Directory) 또는 Kerberos와 같은 다른 외부 인증 체계로 변경할 수 있습니다. 그러나 자율운영 AI 데이터베이스는 한 번에 하나의 외부 인증 체계만 사용으로 설정할 수 있습니다.

    자율운영 AI 데이터베이스 인스턴스에서 외부 ID 제공자로 Azure AD를 사용으로 설정하려면 다음을 수행합니다.

    1. DBMS_CLOUD_ADMIN PL/SQL 패키지에 대한 EXECUTE 권한을 가진 사용자로 자율운영 AI 데이터베이스 인스턴스에 로그인합니다. ADMIN 사용자에게 이 권한이 있습니다.

    2. 주어진 시간에 자율운영 AI 데이터베이스에 대해 하나의 외부 인증 체계만 사용으로 설정할 수 있으므로, DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION 프로시저를 실행하여 데이터베이스에 대해 이미 사용으로 설정된 외부 인증 체계를 사용 안함으로 설정하십시오.

      프로시저를 실행하려면 ADMIN 사용자로 로그인하거나 DBMS_CLOUD_ADMIN에 대해 EXECUTE 권한이 있어야 합니다.

       BEGIN
         DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
       END;
       /
      
    3. Azure AD 필수 매개변수를 사용하여 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 프로시저를 실행합니다.

       BEGIN
         DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
             type   =>'AZURE_AD',
             params => JSON_OBJECT('tenant_id' VALUE 'tenant_id',
                                   'application_id' VALUE 'application_id',
                                   'application_id_uri' VALUE 'application_id_uri'),
             force => TRUE
         );
       END;
      

      이 절차에서 Azure AD 매개변수는 다음과 같습니다.

      • type: 외부 인증 제공자를 지정합니다. 그림과 같이 Azure AD의 경우 'AZURE_AD'를 사용합니다.

      • params: Values for the required Azure AD parameters are available from the Azure portal on the app registration Overview pane for Azure Active Directory. Azure AD에 필요한 params는 다음과 같습니다.

        • tenant_id: Azure 계정의 테넌트 ID입니다. 테넌트 ID는 자율운영 AI 데이터베이스 인스턴스의 Azure AD 애플리케이션 등록을 지정합니다.

        • application_id: 자율운영 AI 데이터베이스 인스턴스에서 외부 인증에 대한 롤/스키마 매핑을 지정하기 위해 Azure AD에서 생성된 Azure 애플리케이션 ID입니다.

        • application_id_uri: Azure 애플리케이션에 지정된 고유 URI입니다.

          자율운영 AI 데이터베이스 인스턴스의 식별자입니다. 이름은 도메인에 한정되어 있어야 합니다. 이 이름은 교차 테넌시 리소스 액세스를 지원합니다.

          이 매개변수의 최대 길이는 256자입니다.

      • force: 자율운영 AI 데이터베이스 인스턴스에 대해 다른 EXTERNAL AUTHENTICATION 메소드가 구성되어 있고 사용 안함으로 설정하려는 경우 이 매개변수를 TRUE로 설정합니다.

      예:

       BEGIN
         DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
             type   =>'AZURE_AD',
             params => JSON_OBJECT('tenant_id' VALUE '29981886-6fb3-44e3-82',
                                   'application_id' VALUE '11aa1a11-aaa',
                                   'application_id_uri' VALUE 'https://example.com/111aa1aa'),
             force  => TRUE
         );
       END;
      

      그러면 IDENTITY_PROVIDER_TYPE 시스템 매개변수가 설정됩니다.

      예를 들어, 다음을 사용하여 IDENTITY_PROVIDER_TYPE을 확인할 수 있습니다.

       SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
      
       NAME                   VALUE
      
       ---------------------- --------
       identity_provider_type AZURE_AD
      

    자세한 내용은 ENABLE_EXTERNAL_AUTHENTICATION 프로시저를 참조하십시오.

Oracle Database 스키마 및 롤 매핑

Azure AD 사용자는 하나의 데이터베이스 스키마에 매핑되고, 선택적으로 하나 이상의 데이터베이스 롤에 매핑됩니다.

Oracle 데이터베이스 스키마 및 롤을 Microsoft Azure AD 사용자에게 매핑하기 위한 옵션은 다음과 같습니다.

Azure AD에 대한 클라이언트 연결 구성

Azure AD 토큰을 사용하여 전용 Exadata 인프라 인스턴스의 Oracle Autonomous AI Database와 연결하도록 클라이언트를 구성할 수 있는 방법은 여러 가지가 있습니다.

사용자 환경에 가장 적합한 클라이언트 연결 방법을 선택해야 합니다. 이 설명서에서는 SQL*Plus를 Azure AD OAuth2 액세스 토큰을 가져오는 다양한 방법과 연결하는 예를 제공합니다. 모든 Oracle Database 릴리스 19c 클라이언트는 파일로 전달되는 토큰을 수락할 수 있습니다. JDBC-thin, Instant Client 및 ODP.net 드라이버도 응용 프로그램의 데이터베이스 클라이언트 API를 통해 토큰을 수락합니다. SQL*Plus와 같은 Oracle Database 도구는 토큰을 직접 검색할 수 없으므로 PowerShell 또는 Azure CLI와 같은 도구를 사용하여 Azure AD OAuth2 액세스 토큰을 검색해야 합니다. To retrieve an Azure AD token, the client must be registered through the Azure AD app registration process. 클라이언트 등록은 앱 등록을 사용하여 Azure AD에 전용 Exadata 인프라 서버의 Oracle Autonomous AI Database를 등록하는 것과 유사합니다. 데이터베이스와 클라이언트는 모두 Azure AD에 등록해야 합니다.

클라이언트가 데이터베이스에 대한 액세스 토큰을 가져올 수 있는 권한을 얻을 수 있도록 데이터베이스를 등록해야 합니다. Azure AD가 신뢰할 수 있는 클라이언트가 액세스 토큰을 요청하는 것을 인식할 수 있도록 클라이언트를 등록해야 합니다.

주: 클라이언트에서는 sqlnet.ora 파일에서 TOKEN_AUTHTOKEN_LOCATION 매개변수를 설정하여 위치에서 Azure AD 데이터베이스 액세스 토큰을 검색하고 / 슬래시 로그인을 사용할 때 사용해야 합니다. 자세한 내용은 SQL*Plus for Azure AD Access Tokens 구성을 참조하십시오.

See the following Microsoft Azure articles for more information about connecting clients to Azure AD:

PowerShell에서 자율운영 AI 데이터베이스에 대한 SQL*Plus 클라이언트 연결의 운영 흐름

Azure 사용자, Azure AD 및 자율운영 AI 데이터베이스 인스턴스 간의 연결은 이러한 구성요소 전체에서 OAuth2 토큰의 전달에 의존합니다.

공용 클라이언트와의 ROPC(Resource Owner Password Credential) 플로우 사용을 보여주는 예제는 [Operational Flow for SQLPlus Client Connection in PowerShell to Oracle Database](/pls/topic/lookup?ctx=en/cloud/paas/autonomous-database/dedicated/adbaa&id=DBSEG-GUID-455CDC87-C5A1-4A58-801A-29D216CB66B5) in *Security Guide를 참조하십시오.

Azure AD 애플리케이션 등록에 클라이언트 등록

이 유형의 등록은 자율운영 AI 데이터베이스를 Azure AD 앱 등록에 등록하는 것과 유사합니다. 자세한 내용은 다음 절을 참조하십시오.

Azure AD OAuth2 토큰 검색 예

Azure AD OAuth2 토큰을 검색할 수 있는 다양한 방법을 보여주는 예는 보안 설명서Azure AD OAuth2 토큰 검색 예를 참조하십시오.

Azure AD 액세스 토큰에 대한 SQL*Plus 구성

위치에서 Azure AD 데이터베이스 액세스 토큰을 검색하고 / 슬래시 로그인을 사용할 때 사용하도록 SQL*Plus를 구성해야 합니다. 자세한 지침은 보안 설명서의 SQL*Plus for Azure AD 액세스 토큰 구성을 참고하세요.

Microsoft Entra ID 연결 문제 해결

추적 파일을 사용하여 Microsoft Entra ID 연결 문제를 진단할 수 있습니다. 또한 ORA-12599ORA-03114 오류를 쉽게 해결할 수 있습니다.