Azure SignalR Service에 대한 사용자 지정 도메인을 구성하는 방법

Azure SignalR Service와 함께 제공되는 기본 도메인 외에도 서비스에 사용자 지정 DNS 도메인을 추가할 수도 있습니다. 이 문서에서는 SignalR Service에 사용자 지정 도메인을 추가하는 방법을 알아봅니다.

참고 항목

사용자 지정 도메인은 프리미엄 계층 기능입니다. 표준 계층 리소스는 가동 중지 시간 없이 프리미엄 계층으로 업그레이드할 수 있습니다.

사용자 지정 도메인을 구성하려면 다음을 수행해야 합니다.

  1. 사용자 지정 도메인 인증서를 추가합니다.
  2. DNS CNAME 레코드를 만듭니다.
  3. 사용자 지정 도메인을 추가합니다.

필수 조건

  • Azure App Service 또는 타사 등록자를 통해 등록된 사용자 지정 도메인입니다.
  • 활성 구독이 있는 Azure 계정.
  • Azure 리소스 그룹.
  • Azure SignalR Service 리소스.
  • Azure Key Vault 인스턴스.
  • Key Vault 인스턴스에 저장된 사용자 지정 도메인 SSL 인증서. Key Vault 인증서 시작을 참조하세요.
  • Azure DNS 영역. (선택 사항)

사용자 지정 인증서 추가

사용자 지정 도메인을 추가하려면 먼저 사용자 지정 SSL 인증서를 추가해야 합니다. SignalR Service는 관리 ID를 통해 키 자격 증명 모음에 저장된 인증서에 액세스합니다.

도메인 인증서를 추가하는 세 가지 단계가 있습니다.

  1. SignalR Service에서 관리 ID를 사용하도록 설정합니다.
  2. 관리 ID에 키 자격 증명 모음에 대한 액세스 권한을 부여합니다.
  3. 사용자 지정 인증서를 SignalR Service에 추가합니다.

SignalR Service에서 관리 ID 사용

시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID를 사용할 수 있습니다. 이 문서에서는 시스템이 할당한 관리 ID를 사용하는 방법을 보여 줍니다.

  1. Azure Portal에서 SignalR Service 리소스로 이동합니다.

  2. 왼쪽 메뉴에서 ID를 선택합니다.

  3. 시스템 할당 테이블에서 상태켜기로 설정합니다.

    Screenshot of enabling managed identity.

  4. 시스템이 할당한 관리 ID를 사용하도록 설정하라는 메시지가 표시되면 저장을 선택한 다음, 를 선택합니다.

ID가 만들어지면 개체(보안 주체) ID가 표시됩니다. SignalR Service는 시스템이 할당한 관리 ID의 개체 ID를 사용하여 키 자격 증명 모음에 액세스합니다. 관리 ID의 이름은 SignalR Service 인스턴스의 이름과 동일합니다. 다음 섹션에서는 이름 또는 개체 ID를 사용하여 보안 주체(관리 ID)를 검색해야 합니다.

관리 ID에 키 자격 증명 모음에 대한 액세스 권한을 부여합니다.

SignalR Service는 관리 ID를 사용하여 키 자격 증명 모음에 액세스합니다. 키 자격 증명 모음에 액세스하려면 관리 ID 권한을 부여해야 합니다.

권한을 부여하는 단계는 자격 증명 모음 액세스 정책 또는 Azure 역할 기반 액세스 제어를 키 자격 증명 모음 권한 모델로 선택했는지 여부에 따라 다릅니다.

자격 증명 모음 액세스 정책을 키 자격 증명 모음 권한 모델로 사용하는 경우 이 절차에 따라 새 액세스 정책을 추가합니다.

  1. 키 자격 증명 모음 리소스로 이동합니다.

  2. 왼쪽 메뉴에서 액세스 정책을 선택합니다.

  3. 만들기를 실행합니다. Screenshot of Key Vault's access policy page.

  4. 권한 탭에서 다음을 수행합니다.

    1. 비밀 권한에서 가져오기를 선택합니다.
    2. 인증서 권한에서 가져오기를 선택합니다.
  5. 다음을 선택하여 보안 주체 탭으로 이동합니다.

    Screenshot of Permissions tab of Key Vault's Create an access policy page.

  6. 검색 상자에 관리 ID의 개체 ID를 입력합니다.

  7. 검색 결과에서 관리 ID를 선택합니다.

  8. 검토 + 만들기 탭을 선택합니다.

    Screenshot of the Principal tab of Key Vault's Create an access policy page.

  9. 검토 + 만들기 탭에서 만들기를 선택합니다.

SignalR Service 인스턴스의 관리 ID는 액세스 정책 테이블에 나열됩니다.

Screenshot of Key Vault's Access policies page.

SignalR Service에 사용자 지정 인증서 추가

다음 단계를 수행하여 사용자 지정 인증서를 SignalR Service에 추가합니다.

  1. Azure Portal에서 SignalR Service 리소스로 이동합니다.

  2. 메뉴 창에서 사용자 지정 도메인을 선택합니다.

  3. 사용자 지정 인증서에서 추가를 선택합니다.

    Screenshot of custom certificate management.

  4. 사용자 지정 인증서의 이름을 입력합니다.

  5. Key Vault에서 선택을 선택하여 Key Vault 인증서를 선택합니다. 다음 Key Vault 기본 URI를 선택하면 Key Vault 비밀 이름이 자동으로 채워집니다. 또는 이러한 필드를 수동으로 채울 수도 있습니다.

  6. 필요에 따라 인증서를 특정 버전에 고정하려는 경우 Key Vault 비밀 버전을 지정할 수 있습니다.

  7. 추가를 선택합니다.

Screenshot of adding a custom certificate.

SignalR Service가 인증서를 가져오고 해당 콘텐츠의 유효성을 검사합니다. 성공하면 인증서의 프로비전 상태성공이 됩니다.

Screenshot of an added custom certificate.

사용자 지정 도메인 CNAME 레코드 만들기

Azure DNS 영역 또는 타사 등록 기관 서비스를 사용하여 사용자 지정 도메인에 대한 CNAME 레코드를 만들어야 합니다. CNAME 레코드는 사용자 지정 도메인에서 SignalR Service의 기본 도메인으로 별칭을 만듭니다. SignalR Service는 레코드를 사용하여 사용자 지정 도메인의 소유권에 대한 유효성을 검사합니다.

예를 들어 기본 도메인이 contoso.service.signalr.net이고 사용자 지정 도메인이 contoso.example.com인 경우 example.com에 CNAME 레코드를 만들어야 합니다.

CNAME 레코드를 만든 후에는 DNS 조회를 수행하여 CNAME 정보를 볼 수 있습니다. 예를 들어 Linux dig(DNS 조회) 명령의 출력은 다음 출력과 유사해야 합니다.

 contoso.example.com. 0 IN CNAME contoso.service.signalr.net.

Azure DNS 영역을 사용하는 경우 CNAME 레코드를 추가하는 방법을 알아보려면 DNS 레코드 관리를 참조하세요.

Screenshot of adding a CNAME record in Azure DNS Zone.

다른 DNS 공급자를 사용하는 경우 공급자 가이드에 따라 CNAME 레코드를 만듭니다.

사용자 지정 도메인 추가

이제 사용자 지정 도메인을 SignalR Service에 추가합니다.

  1. Azure Portal에서 SignalR Service 리소스로 이동합니다.

  2. 메뉴 창에서 사용자 지정 도메인을 선택합니다.

  3. 사용자 지정 도메인에서 추가를 선택합니다.

    Screenshot of custom domain management.

  4. 사용자 지정 도메인의 이름을 입력합니다.

  5. 사용자 지정 도메인의 전체 도메인 이름(예: contoso.com)을 입력합니다.

  6. 이 사용자 지정 도메인에 적용되는 사용자 지정 인증서를 선택합니다.

  7. 추가를 선택합니다.

    Screenshot of adding a custom domain.

사용자 지정 도메인 확인

사용자 지정 도메인을 확인하려면 상태 API를 사용하면 됩니다. 상태 API는 SignalR Service 인스턴스의 상태를 반환하는 공용 엔드포인트입니다. 상태 API는 https://<your custom domain>/api/health에서 사용할 수 있습니다.

다음은 cURL을 사용하는 예제입니다.

PS C:\> curl.exe -v https://contoso.example.com/api/health
...
> GET /api/health HTTP/1.1
> Host: contoso.example.com

< HTTP/1.1 200 OK

인증서 오류 없이 200 상태 코드가 반환되어야 합니다.

개인 네트워크에서 Key Vault 액세스

키 자격 증명 모음에 프라이빗 엔드포인트를 구성한 경우 SignalR Service 공용 네트워크를 통해 키 자격 증명 모음에 액세스할 수 없습니다. 공유 프라이빗 엔드포인트를 만들어 프라이빗 네트워크를 통해 키 자격 증명 모음에 대한 SignalR Service 액세스 권한을 부여할 수 있습니다.

공유 프라이빗 엔드포인트를 만들면 위의 SignalR Service에 사용자 지정 인증서 추가 섹션에 설명된 대로 사용자 지정 인증서를 추가할 수 있습니다.

Important

키 자격 증명 모음 URI에서 도메인을 변경할 필요가 없습니다. 예를 들어 키 자격 증명 모음 기본 URI가 https://contoso.vault.azure.net인 경우 이 URI를 사용하여 사용자 지정 인증서를 구성합니다.

키 자격 증명 모음 방화벽 설정에서 SignalR Service IP 주소를 명시적으로 허용할 필요가 없습니다. 자세한 내용은 Key Vault 프라이빗 링크 진단을 참조하세요.

인증서 교체

사용자 지정 인증서를 만들 때 비밀 버전을 지정하지 않으면 Azure SignalR Service는 Key Vault의 최신 버전을 주기적으로 확인합니다. 새 버전이 관찰되면 자동으로 적용됩니다. 지연은 일반적으로 1시간 이내입니다.

또는 Key Vault의 특정 비밀 버전에 사용자 지정 인증서를 고정할 수도 있습니다. 새 인증서를 적용해야 하는 경우 비밀 버전을 편집한 다음, 사용자 지정 인증서를 사전에 업데이트할 수 있습니다.

정리

이 문서에서 만든 리소스를 사용할 계획이 없다면 리소스 그룹을 삭제할 수 있습니다.

주의

리소스 그룹을 삭제하면 그 안에 포함된 모든 리소스가 삭제됩니다. 지정된 리소스 그룹에 이 문서의 범위에 속하지 않는 리소스가 포함된 경우에도 해당 리소스가 삭제됩니다.

다음 단계