Azure Web PubSub 서비스에 대한 관리 ID

이 문서에서는 Azure Web PubSub 서비스에 대한 관리 ID를 만들고 사용하는 방법을 보여 줍니다.

Important

Azure Web PubSub 서비스는 하나의 관리 ID만 지원할 수 있습니다. 즉, 시스템 할당 ID 또는 사용자 할당 ID를 추가할 수 있습니다.

시스템 할당 ID 추가

Azure Portal에서 관리 ID를 설정하려면 먼저 Azure Web PubSub 서비스 인스턴스를 만든 다음 기능을 사용하도록 설정합니다.

  1. 평소처럼 포털에서 Azure Web PubSub 서비스 인스턴스를 만듭니다. 포털에서 찾아봅니다.

  2. ID를 선택합니다.

  3. 시스템 할당 탭에서 상태켜기로 바꿉니다. 저장을 선택합니다.

    Add a system-assigned identity in the portal

사용자 할당 ID 추가

사용자 할당 ID로 Azure Web PubSub 서비스 인스턴스를 만들려면 ID를 만든 다음, 리소스 ID를 서비스에 추가해야 합니다.

  1. 이러한 지침에 따라 사용자 할당 관리 ID 리소스를 만듭니다.

  2. 평소처럼 포털에서 Azure Web PubSub 서비스 인스턴스를 만듭니다. 포털에서 찾아봅니다.

  3. ID를 선택합니다.

  4. 사용자 할당 탭에서 추가를 클릭합니다.

  5. 이전에 만든 ID를 검색한 후 선택합니다. 추가를 선택합니다.

    Add a user-assigned identity in the portal

클라이언트 이벤트 시나리오에서 관리 ID 사용

Azure Web PubSub 서비스는 완전 관리형 서비스이므로 관리 ID를 사용하여 토큰을 수동으로 가져올 수 없습니다. 대신 Azure Web PubSub 서비스가 이벤트를 이벤트 처리기로 보낼 때 관리 ID를 사용하여 액세스 토큰을 가져옵니다. 그런 다음 서비스는 http 요청의 Authorization 헤더에 액세스 토큰을 설정합니다.

이벤트 처리기 설정에서 관리 ID 인증 사용

  1. 시스템 할당 ID 또는 사용자 할당 ID를 추가합니다.

  2. 허브 설정 구성으로 이동하여 업스트림에서 이벤트 처리기를 추가하거나 편집합니다.

    msi-setting

  3. 인증 섹션에서 인증 사용을 선택하고 발급된 토큰 대상 그룹 지정을 선택합니다. 대상 그룹은 획득한 액세스 토큰에서 aud 클레임이 되며 이벤트 처리기에서 유효성 검사의 일부로 사용할 수 있습니다. 다음 중 하나를 선택할 수 있습니다.

    • 기존 Microsoft Entra 애플리케이션에서 선택합니다. 선택한 애플리케이션 ID가 사용됩니다.
    • 서비스 주체의 애플리케이션 ID URI

    Important

    빈 리소스를 사용하면 Microsoft Graph에 대한 토큰 대상을 실제로 획득할 수 있습니다. 현재와 마찬가지로 Microsoft Graph에서는 토큰 암호화를 사용하도록 설정하므로 애플리케이션에서는 Microsoft Graph 이외의 토큰을 인증하는 데 사용할 수 없습니다. 일반적으로 업스트림 대상을 나타내는 서비스 주체를 항상 만들어야 합니다. 그리고 만든 서비스 주체의 애플리케이션 ID 또는 애플리케이션 ID URI를 설정합니다.

함수 앱에서 인증

Azure Portal을 사용하여 코드 변경 없이 함수 앱에 대한 액세스 유효성 검사를 쉽게 설정할 수 있습니다.

  1. Azure Portal에서 함수 앱으로 이동합니다.

  2. 메뉴에서 인증을 선택합니다.

  3. ID 공급자 추가를 선택합니다.

  4. 기본 사항 탭의 ID 공급자 드롭다운 목록에서 Microsoft를 선택합니다.

  5. 요청이 인증되지 않은 경우 취해야 할 작업에서 Microsoft Entra ID로 로그인을 선택합니다.

  6. 새 등록을 만드는 옵션이 기본적으로 선택되어 있습니다. 등록의 이름을 변경할 수 있습니다. Microsoft Entra 공급자 사용 설정에 대한 자세한 내용은 Microsoft Entra ID 로그인을 사용하도록 App Service 또는 Azure Functions 앱 구성을 참조하세요.

    Screenshot that shows basic information for adding an identity provider.

  7. Azure SignalR Service로 이동하여 단계에 따라 시스템 할당 ID 또는 사용자 할당 ID를 추가합니다.

  8. Azure SignalR Service에서 업스트림 설정으로 이동한 다음 관리 ID 사용기존 애플리케이션에서 선택을 선택합니다. 이전에 만든 애플리케이션을 선택합니다.

이러한 설정을 구성하면 함수 앱은 헤더에 액세스 토큰이 없는 요청을 거부합니다.

액세스 토큰 유효성 검사

WebApp 또는 Azure 함수를 사용하지 않는 경우 토큰의 유효성을 검사할 수도 있습니다.

Authorization 헤더의 토큰은 Microsoft ID 플랫폼 액세스 토큰입니다.

액세스 토큰의 유효성을 검사하려면 앱에서 대상 그룹 및 서명 토큰의 유효성을 검사해야 합니다. OpenID 검색 문서에 있는 값에 대해 유효성 검사를 수행해야 합니다. 예를 들어 문서의 테넌트 독립적 버전을 참조하세요.

Microsoft Entra 미들웨어에는 액세스 토큰의 유효성을 검사하는 기능이 기본 제공되어 있습니다. 샘플을 통해 원하는 언어로 된 샘플을 찾을 수 있습니다.

토큰 유효성 검사를 처리하는 방법을 보여 주는 라이브러리와 코드 샘플이 제공됩니다. JWT(JSON 웹 토큰) 유효성 검사에 사용할 수 있는 몇 가지 오픈 소스 파트너 라이브러리도 있습니다. 거의 모든 플랫폼 및 언어에 대해 하나 이상의 옵션이 있습니다. Microsoft Entra 권한 부여 라이브러리 및 코드 샘플에 대한 자세한 내용은 Microsoft ID 플랫폼 인증 라이브러리를 참조하세요.

특히, 이벤트 처리기가 Azure Function 또는 Web Apps에서 호스팅되는 경우 쉬운 방법은 Microsoft Entra 로그인 구성입니다.

Key Vault 참조에 관리 ID 사용

Web PubSub 서비스는 Key Vault에 액세스하여 관리 ID를 사용하여 비밀을 가져올 수 있습니다.

  1. Azure Web PubSub 서비스에 대한 시스템 할당 ID 또는 사용자 할당 ID를 추가합니다.

  2. Key Vault의 액세스 정책에서 관리 ID에 대한 비밀 읽기 권한을 부여합니다. Azure Portal을 사용하여 Key Vault 액세스 정책 할당 참조

현재 이 기능은 다음과 같은 시나리오에서 사용할 수 있습니다.

  • {@Microsoft.KeyVault(SecretUri=<secret-identity>)} 구문을 사용하여 이벤트 처리기 URL 템플릿 설정의 KeyVault에서 비밀을 가져옵니다.

다음 단계