다음을 통해 공유


클라이언트에 대한 클라이언트 액세스 URL을 생성하는 방법

브라우저 💻, 모바일 앱 📱 또는 IoT 디바이스 💡에 해당하는 클라이언트는 클라이언트 액세스 URL을 사용하여 리소스에 연결하고 인증합니다. 이 URL은 wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>의 패턴을 따릅니다. 이 문서에서는 클라이언트 액세스 URL을 가져오는 여러 가지 방법을 보여 줍니다.

Azure Portal에서 복사

Azure Portal의 키 탭에는 다음 다이어그램과 같이 클라이언트 액세스 URL을 빠르게 생성하는 클라이언트 URL 생성기 도구가 있습니다. 여기에 입력된 값은 저장되지 않습니다.

Screenshot of the Web PubSub Client URL Generator.

서비스 SDK에서 생성

Web PubSub 서버 SDK를 사용하여 동일한 클라이언트 액세스 URL을 생성할 수 있습니다.

  1. 서버 SDK 시작에 따라 WebPubSubServiceClient 개체 service를 만듭니다.

  2. WebPubSubServiceClient.getClientAccessToken을 호출하여 클라이언트 액세스 URL을 생성합니다.

    • 사용자 ID 구성

      let token = await serviceClient.getClientAccessToken({ userId: "user1" });
      
    • 토큰의 수명 구성

      let token = await serviceClient.getClientAccessToken({
        expirationTimeInMinutes: 5,
      });
      
    • 이 클라이언트 액세스 URL을 사용하여 연결할 때 그룹 group1을 직접 조인할 수 있는 역할 구성

      let token = await serviceClient.getClientAccessToken({
        roles: ["webpubsub.joinLeaveGroup.group1"],
      });
      
    • 클라이언트가 이 클라이언트 액세스 URL을 사용하여 연결할 때 직접 그룹 group1로 메시지를 보낼 수 있는 역할 구성

      let token = await serviceClient.getClientAccessToken({
        roles: ["webpubsub.sendToGroup.group1"],
      });
      
    • 이 클라이언트 액세스 URL을 사용하여 연결되면 클라이언트가 조인하는 그룹 group1 구성

      let token = await serviceClient.getClientAccessToken({
        groups: ["group1"],
      });
      

실제 코드에서는 일반적으로 서버 쪽에서 클라이언트 액세스 URL을 생성하는 논리를 호스트합니다. 클라이언트 요청이 들어오면 서버 쪽에서 일반 인증/권한 부여 워크플로를 사용하여 클라이언트 요청의 유효성을 검사할 수 있습니다. 유효한 클라이언트 요청만 클라이언트 액세스 URL을 다시 가져올 수 있습니다.

클라이언트 토큰 생성 REST API 호출

서비스에서 Microsoft Entra ID를 사용하도록 설정하고 Microsoft Entra 토큰을 통해 클라이언트 토큰 생성 Rest API를 호출하여 클라이언트에서 사용할 토큰을 가져올 수 있습니다.

  1. 애플리케이션에서 권한 부여에 따라 Microsoft Entra ID를 사용하도록 설정합니다.

  2. Microsoft Entra 토큰 가져오기에 따라 Postman을 사용하여 Microsoft Entra 토큰을 가져옵니다.

  3. Microsoft Entra 토큰을 사용하여 Postman을 통해 :generateToken을 호출합니다.

    참고 항목

    최신 버전의 Postman을 사용하세요. 이전 버전의 Postman은 경로에서 콜론 :을 지원하는 데 몇 가지 문제가 있습니다.

    1. URI에 대해 https://{Endpoint}/api/hubs/{hub}/:generateToken?api-version=2022-11-01을 입력합니다.

    2. 인증 탭에서 전달자 토큰을 선택하고 이전 단계에서 가져온 Microsoft Entra 토큰을 붙여넣습니다.

    3. 보내기를 선택하면 응답에 클라이언트 액세스 토큰이 표시됩니다.

      {
        "token": "ABCDEFG.ABC.ABC"
      }
      
  4. 클라이언트 액세스 URI의 형식은 wss://<endpoint>/client/hubs/<hub_name>?access_token=<token>입니다.