MQTT 메시지를 게시하거나 구독할 수 있도록 Microsoft Entra JWT 인증 및 Azure RBAC 권한 부여
Microsoft Entra JWT를 사용하여 Event Grid 네임스페이스에 연결하도록 MQTT 클라이언트를 인증할 수 있습니다. Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 MQTT 클라이언트가 Microsoft Entra ID로 특정 토픽 공간에 대한 액세스를 게시하거나 구독할 수 있습니다.
Important
- 이 기능은 MQTT v5 프로토콜 버전을 사용하는 경우에만 지원됩니다.
- JWT 인증은 관리 ID 및 서비스 주체에 대해서만 지원됩니다.
필수 조건
- MQTT가 사용하도록 설정된 Event Grid 네임스페이스가 필요합니다. Event Grid 네임스페이스 만들기에 대해 알아보기
Microsoft Entra JWT를 사용하여 인증
MQTT v5 CONNECT 패킷을 사용하여 Microsoft Entra JWT 토큰을 제공해 클라이언트를 인증할 수 있으며 MQTT v5 AUTH 패킷을 사용하여 토큰을 새로 고칠 수 있습니다.
CONNECT 패킷에서 다음 필드에 필요한 값을 제공할 수 있습니다.
필드 | 값 |
---|---|
인증 방법 | OAUTH2-JWT |
인증 데이터 | JWT 토큰 |
AUTH 패킷에서 다음 필드에 필요한 값을 제공할 수 있습니다.
필드 | 값 |
---|---|
인증 방법 | OAUTH2-JWT |
인증 데이터 | JWT 토큰 |
인증 이유 코드 | 25 |
값이 25인 인증 이유 코드는 재인증을 의미합니다.
참고 항목
- 대상 그룹: "aud" 클레임은 "https://eventgrid.azure.net/"으로 설정해야 합니다.
액세스 권한을 제공하기 위한 권한 부여
Microsoft Entra ID 기반 JWT 인증을 사용하는 클라이언트는 Event Grid 네임스페이스와 통신할 수 있는 권한을 부여받아야 합니다. 다음 두 가지 기본 제공 역할을 할당하여 Microsoft Entra ID가 있는 클라이언트에 게시 또는 구독 권한을 제공할 수 있습니다.
- EventGrid 토픽 공간 게시자 역할을 사용하여 MQTT 메시지 게시자 액세스 권한 제공
- EventGrid 토픽 공간 구독자 역할을 사용하여 MQTT 메시지 구독자 액세스 권한 제공
이러한 역할을 사용하여 구독, 리소스 그룹, Event Grid 네임스페이스 또는 Event Grid 토픽 공간 범위에서 권한을 제공할 수 있습니다.
토픽스페이스 범위에서 Microsoft Entra ID에 게시자 역할 할당
- Azure Portal에서 Event Hubs 네임스페이스로 이동합니다.
- 액세스 권한을 부여할 토픽 공간으로 이동합니다.
- 토픽스페이스의 액세스 제어(IAM) 페이지로 이동합니다.
- 역할 할당 탭을 선택하여 이 범위에서 역할 할당을 확인합니다.
- + 추가 및 역할 할당 추가를 선택합니다.
- 역할 탭에서 "Event Grid 토픽 공간 게시자" 역할을 선택합니다.
- 멤버 탭에서 다음에 대한 액세스 할당에 대해 사용자, 그룹 또는 서비스 주체 옵션을 선택하여 선택한 역할을 하나 이상의 서비스 주체(애플리케이션)에 할당합니다.
- + 구성원 선택을 선택합니다.
- 서비스 주체를 찾아 선택합니다.
- 다음을 선택합니다.
- 검토 + 할당 탭에서 검토 + 할당을 선택합니다.
참고 항목
비슷한 단계에 따라 토픽 공간 범위에서 기본 제공 EventGrid 토픽 공간 구독자 역할을 할당할 수 있습니다.
다음 단계
- Event Grid를 사용하여 MQTT 메시지 게시 및 구독을 참조하세요.
- 관리 ID의 작동 방식에 대한 자세한 내용은 Azure 리소스에 대한 관리 ID가 Azure 가상 머신에서 작동하는 방식 - Microsoft Entra를 참조하세요.
- Microsoft Entra ID에서 토큰을 가져오는 방법에 대한 자세한 내용은 Microsoft Entra 토큰 가져오기를 참조하세요.
- Azure ID 클라이언트 라이브러리에 대한 자세한 내용은 Azure ID 클라이언트 라이브러리 사용을 참조하세요.
- 토큰을 제공할 수 있는 자격 증명에 대한 인터페이스를 구현하는 방법에 대한 자세한 내용은 TokenCredential 인터페이스를 참조하세요.
- Azure ID를 사용하여 인증하는 방법에 대한 자세한 내용은 예제를 참조하세요.
- 사용자 지정 역할을 사용하려는 경우 프로세스를 검토하여 사용자 지정 역할을 만들 수 있습니다.