다음을 통해 공유


Event Hubs 리소스에 액세스하려면 Microsoft Entra ID로 애플리케이션 인증

Microsoft Azure는 Microsoft Entra ID를 기반으로 리소스 및 애플리케이션에 대한 통합 액세스 제어 관리를 제공합니다. Azure Event Hubs에서 Microsoft Entra ID를 사용하는 주요 이점은 코드에 자격 증명을 저장할 필요가 더 이상 없다는 것입니다. 대신 Microsoft ID 플랫폼에서 OAuth 2.0 액세스 토큰을 요청할 수 있습니다. 토큰을 요청하는 리소스 이름은 https://eventhubs.azure.net/이며 모든 클라우드/테넌트에 동일합니다(Kafka 클라이언트의 경우 토큰 요청에 대한 리소스는 https://<namespace>.servicebus.windows.net입니다). Microsoft Entra는 애플리케이션을 실행하는 보안 주체(사용자, 그룹, 서비스 주체 또는 관리 ID)를 인증합니다. 인증이 성공하면 Microsoft Entra ID는 액세스 토큰을 애플리케이션에 반환하고, 애플리케이션은 액세스 토큰을 사용하여 Azure Event Hubs 리소스에 대한 요청 권한을 부여할 수 있습니다.

Microsoft Entra 보안 주체에 역할이 할당되면 Azure는 해당 보안 주체에 해당 리소스에 대한 액세스 권한을 부여합니다. 액세스의 범위는 구독, 리소스 그룹, Event Hubs 네임스페이스 또는 그 아래에 있는 리소스의 수준으로 지정할 수 있습니다. Microsoft Entra 보안은 사용자, 그룹, 애플리케이션 서비스 주체 또는 Azure 리소스에 대한 관리 ID에 역할을 할당할 수 있습니다.

참고 항목

역할 정의는 사용 권한 컬렉션입니다. Azure RBAC(Azure 역할 기반 액세스 제어)는 역할 할당을 통해 사용 권한을 적용하는 방법을 제어합니다. 역할 할당은 보안 주체, 역할 정의, 범위의 세 가지 요소로 구성됩니다. 자세한 내용은 다른 역할 이해를 참조하세요.

Azure Event Hubs에 대한 기본 제공 역할

Azure는 Microsoft Entra ID 및 OAuth를 사용하여 Event Hubs 데이터에 대한 액세스 권한을 부여하기 위해 다음과 같은 Azure 기본 제공 역할을 제공합니다.

  • Azure Event Hubs 데이터 소유자: 이 역할을 사용하여 Event Hubs 리소스에 대한 전체 액세스 권한을 제공합니다.
  • Azure Event Hubs 데이터 발신자: 이 역할에 할당된 보안 주체는 네임스페이스의 특정 이벤트 허브 또는 모든 이벤트 허브로 이벤트를 보낼 수 있습니다.
  • Azure Event Hubs 데이터 수신기: 이 역할에 할당된 보안 주체는 특정 이벤트 허브 또는 네임스페이스의 모든 이벤트 허브에서 이벤트를 수신할 수 있습니다.

스키마 레지스트리 기본 제공 역할은 스키마 레지스트리 역할을 참조하세요.

Important

미리 보기 릴리스는 소유자 또는 참가자 역할에 대한 Event Hubs 데이터 액세스 권한 추가를 지원했습니다. 그러나 소유자 및 참여자 역할의 데이터 액세스 권한은 더 이상 부여되지 않습니다. 소유자 또는 참가자 역할을 사용하는 경우 Azure Event Hubs 데이터 소유자 역할을 사용하도록 전환합니다.

애플리케이션에서 인증

Event Hubs와 함께 Microsoft Entra ID를 사용하는 주요 이점은 자격 증명을 더 이상 코드에 저장할 필요가 없다는 것입니다. 대신 Microsoft ID 플랫폼에서 OAuth 2.0 액세스 토큰을 요청할 수 있습니다. Microsoft Entra는 애플리케이션을 실행하는 보안 주체(사용자, 그룹 또는 서비스 주체)를 인증합니다. 인증이 성공하면 Microsoft Entra ID는 액세스 토큰을 애플리케이션에 반환하고, 애플리케이션은 액세스 토큰을 사용하여 Azure Event Hubs에 대한 요청을 권한을 부여할 수 있습니다.

다음 섹션에서는 Microsoft ID 플랫폼 2.0을 통한 인증을 위해 네이티브 애플리케이션 또는 웹 애플리케이션을 구성하는 방법을 보여 줍니다. Microsoft ID 플랫폼 2.0에 대한 자세한 내용은 Microsoft ID 플랫폼(v2.0) 개요를 참조하세요.

OAuth 2.0 코드 부여 흐름에 대한 개요는 OAuth 2.0 코드 부여 흐름을 사용하여 Microsoft Entra 웹 애플리케이션에 대한 액세스 권한 부여를 참조하세요.

Microsoft Entra 테넌트에 애플리케이션 등록

Microsoft Entra ID를 사용하여 Event Hubs 리소스를 권한 부여하는 첫 번째 단계는 Azure Portal에서 Microsoft Entra 테넌트에 클라이언트 애플리케이션을 등록하는 것입니다. 빠른 시작: Microsoft ID 플랫폼에 애플리케이션 등록의 단계를 따라 Event Hubs 리소스에 액세스하려는 애플리케이션을 나타내는 Microsoft Entra ID에 애플리케이션을 등록합니다.

클라이언트 애플리케이션을 등록할 때 애플리케이션에 대한 정보를 제공합니다. 그런 다음 Microsoft Entra ID는 애플리케이션을 Microsoft Entra 런타임과 연결하는 데 사용할 수 있는 클라이언트 ID(애플리케이션 ID라고도 함)를 제공합니다. 클라이언트 ID에 대해 자세히 알아보려면 Microsoft Entra ID의 애플리케이션 및 서비스 주체 개체를 참조하세요.

참고 항목

애플리케이션을 네이티브 애플리케이션으로 등록하는 경우 리디렉션 URI에 유효한 URI를 지정할 수 있습니다. 네이티브 애플리케이션의 경우 이 값은 실제 URL일 필요가 없습니다. 웹 애플리케이션의 경우 리디렉션 URI는 토큰이 제공되는 URL을 지정하므로 유효한 URI여야 합니다.

애플리케이션을 등록한 후에는 설정 아래에 애플리케이션(클라이언트) ID가 표시됩니다.

애플리케이션 ID가 강조 표시된 앱 등록 페이지를 보여 주는 스크린샷

클라이언트 암호 만들기

애플리케이션은 토큰을 요청할 때 해당 ID를 증명하기 위해 클라이언트 암호가 필요합니다. 클라이언트 암호 추가의 단계를 따라 Microsoft Entra ID에서 앱에 대한 클라이언트 암호를 만듭니다.

Azure Portal을 사용하여 Azure 역할 할당

원하는 범위(Event Hubs 네임스페이스, 리소스 그룹, 구독)에서 애플리케이션의 서비스 주체에 Event Hubs 역할 중 하나를 할당합니다. 세부 단계에 대해서는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

역할 및 해당 범위를 정의하면 이 GitHub 위치에서 샘플을 사용하여 이 동작을 테스트할 수 있습니다. Azure RBAC(역할 기반 액세스 제어) 및 Azure Portal을 사용하여 Azure 리소스에 대한 액세스를 관리하는 방법에 대한 자세한 내용은 이 문서를 참조하세요.

토큰 획득을 위한 클라이언트 라이브러리

애플리케이션을 등록하고 이 애플리케이션에 Azure Event Hubs에서 데이터를 보내고 받을 수 있는 권한을 부여하면 보안 주체를 인증하고 OAuth 2.0 토큰을 획득하는 코드를 애플리케이션에 추가할 수 있습니다. 토큰을 인증하고 얻으려면 Microsoft ID 플랫폼 인증 라이브러리나 OpenID 또는 Connect 1.0을 지원하는 다른 오픈 소스 라이브러리 중 하나를 사용할 수 있습니다. 그러면 애플리케이션에서는 액세스 토큰을 사용하여 Azure Event Hubs에 대한 요청에 권한을 부여할 수 있습니다.

토큰 획득이 지원되는 시나리오는 .NET용 MSAL(Microsoft 인증 라이브러리) GitHub 리포지토리의 시나리오 섹션을 참조하세요.

샘플

다음 관련 문서를 참조하세요.