次の方法で共有


Azure SignalR Service のカスタム ドメインを構成する

Azure SignalR Service で提供される既定のドメインに加えて、カスタム ドメイン ネーム システム (DNS) ドメインをサービスに追加することもできます。 この記事では、Azure SignalR Service リソースにカスタム ドメインを追加する方法について説明します。

前提条件

  • Azure App Service または Microsoft 以外のレジストラーを介して登録されたカスタム ドメイン。
  • アクティブなサブスクリプションが含まれる Azure アカウント。 持っていない場合は、無料で作成できます。
  • Azure リソース グループ。
  • Azure SignalR Service リソース。
  • Azure Key Vault インスタンス。
  • Key Vault インスタンスに格納されているカスタム ドメイン TLS/SSL 証明書。 詳細については、「 Key Vault 証明書の概要」を参照してください。
  • Azure DNS ゾーン (省略可能)。

カスタム証明書を追加する

カスタム ドメインを追加する前に、カスタム TLS/SSL 証明書を追加する必要があります。 Azure SignalR Service リソースは、マネージド ID を介してキー コンテナーに格納されている証明書にアクセスします。

カスタム ドメイン機能は Premium レベルの機能です。 ダウンタイムなしで Standard レベルのリソースを Premium レベルにアップグレードできます。

Azure SignalR Service でマネージド ID を有効にする

システム割り当てまたはユーザー割り当てマネージド ID のどちらかを使用できます。 この記事では、システム割り当てマネージド ID を使用する方法について説明します。

  1. Azure portal で、Azure SignalR Service リソースに移動します。

  2. 左側のウィンドウにある ID を選択します。

  3. [システム割り当て済み] 表で、[状態][オン] に設定します。

    マネージド ID の有効化を示すスクリーンショット。

  4. 保存 を選択します。 システム割り当てマネージド ID を有効にするように求められたら、[ はい] を選択します。

ID が作成されると、オブジェクト (プリンシパル) ID が表示されます。 Azure SignalR Service では、システム割り当てマネージド ID のオブジェクト ID を使用してキー コンテナーにアクセスします。 マネージド ID の名前は、Azure SignalR Service インスタンスの名前と同じです。 次のセクションでは、名前またはオブジェクト ID を使用してプリンシパル (マネージド ID) を検索します。

マネージド ID に、キー コンテナーへのアクセス権を付与する

Azure SignalR Service では、 マネージド ID を 使用してキー コンテナーにアクセスします。 マネージド ID に、キー コンテナーにアクセスするためのアクセス許可を付与する必要があります。

アクセス許可を付与する手順は、 キー コンテナーのアクセス許可モデルとして Vault アクセス ポリシーAzure ロールベースのアクセス制御 のどちらを選択したかによって異なります。

キー コンテナーのアクセス許可モデルとしてコンテナーのアクセス ポリシーを使用する場合は、次の手順に従って新しいアクセス ポリシーを追加します。

  1. キー コンテナー リソースに移動します。

  2. 左側のウィンドウで、[ アクセス ポリシー] を選択します。

  3. [作成] を選択します

    [Key Vault アクセス ポリシー] ページを示すスクリーンショット。

  4. [ アクセス許可 ] タブで、次の手順を実行します。

    1. [ シークレットのアクセス許可] で、[取得] を選択。
    2. [ 証明書のアクセス許可] で、[取得] を選択 します
  5. [次へ] を選択して、[プリンシパル] タブに進みます。

    Key Vault の [アクセス ポリシーの作成] ページの [アクセス許可] タブを示すスクリーンショット。

  6. 検索ボックスにマネージド ID のオブジェクト ID を入力します。

  7. 検索結果からマネージド ID を選択します。

  8. [確認および作成] タブを選択します。

    Key Vault の [アクセス ポリシーの作成] ページの [プリンシパル] タブを示すスクリーンショット。

  9. [確認および作成] タブで、 [作成] を選択します。

    Azure SignalR Service インスタンスのマネージド ID は、アクセス ポリシーの表に一覧表示されます。

    Key Vault のアクセス ポリシー テーブルを示すスクリーンショット。

Azure SignalR Service リソースにカスタム証明書を追加する

カスタム証明書を Azure SignalR Service リソースに追加するには、次の手順に従います。

  1. Azure portal で、Azure SignalR Service リソースに移動します。

  2. 左側のウィンドウで、[ カスタム ドメイン] を選択します。

  3. [カスタム証明書][追加] を選択します。

    カスタム証明書管理を示すスクリーンショット。

  4. カスタム証明書の名前を入力します。

  5. Key Vault 証明書を選択するには、 Key Vault から [選択] を選択します。 選択すると、 Key Vault のベース URIKey Vault シークレット名 が自動的に入力されます。 または、フィールドを手動で入力します。

  6. 必要に応じて、証明書を特定のバージョンにピン留めする場合は、 Key Vault シークレット バージョン の値を指定できます。

  7. [追加] を選択します。

    カスタム証明書の追加を示すスクリーンショット。

    Azure SignalR Service は証明書をフェッチし、その内容を検証します。 成功すると、 プロビジョニング状態 に証明書の 成功が表示されます

    追加されたカスタム証明書を示すスクリーンショット。

カスタム ドメインの CNAME レコードを作成する

Azure DNS ゾーンまたは Microsoft 以外のレジストラー サービスを使用して、カスタム ドメインの CNAME レコードを作成する必要があります。 CNAME レコードは、カスタム ドメインから Azure SignalR Service の既定のドメインへのエイリアスを作成します。 Azure SignalR Service では、レコードを使用してカスタム ドメインの所有権を検証します。

たとえば、既定のドメインがcontoso.service.signalr.netで、カスタム ドメインがcontoso.example.com場合は、example.comCNAME レコードを作成する必要があります。

CNAME レコードを作成したら、DNS 参照を実行してCNAME情報を表示できます。 この例では、 linux dig (DNS 参照) コマンドからの出力は次の出力のようになります。

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

Azure DNS ゾーンを使用している場合は、「 DNS レコードの管理 」を参照して、 CNAME レコードを追加する方法を確認してください。

Azure DNS ゾーンに CNAME レコードを追加する方法を示すスクリーンショット。

他の DNS プロバイダーを使用している場合は、プロバイダーのガイドに従って CNAME レコードを作成します。

カスタム ドメインの追加

次に、カスタム ドメインを Azure SignalR Service リソースに追加します。

  1. Azure portal で、Azure SignalR Service リソースに移動します。

  2. 左側のウィンドウで、[ カスタム ドメイン] を選択します。

  3. [カスタム ドメイン][追加] を選択します。

    カスタム ドメイン管理を示すスクリーンショット。

  4. カスタム ドメインの名前を入力します。

  5. カスタム ドメインの完全なドメイン名を入力します。 たとえば、contoso.com を使用 します

  6. このカスタム ドメインに適用されるカスタム証明書を選択します。

  7. [追加] を選択します。

    カスタム ドメインの追加を示すスクリーンショット。

カスタム ドメインの検証

カスタム ドメインを検証するには、正常性 API を使用できます。 正常性 API は、Azure 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 にアクセスする

キー コンテナーに 対してプライベート エンドポイント を構成した場合、Azure SignalR Service はパブリック ネットワーク経由でキー コンテナーにアクセスできません。 共有プライベート エンドポイントを作成することで、プライベート ネットワーク経由で Azure SignalR Service にキー コンテナーへのアクセス権を付与できます。

共有プライベート エンドポイントを作成したら、カスタム証明書を追加します。 詳細については、「 Azure SignalR Service リソースにカスタム証明書を追加する」を参照してください。

重要

キー コンテナー URI のドメインを変更する必要はありません。 たとえば、キー コンテナーのベース URI が https://contoso.vault.azure.netされている場合は、この URI を使用してカスタム証明書を構成します。

キー コンテナーのファイアウォール設定で Azure SignalR Service の IP アドレスを明示的に許可する必要はありません。 詳細については、 Key Vault のプライベート リンク診断に関するページを参照してください。

証明書のローテーション

カスタム証明書を作成するときにシークレット バージョンを指定しない場合、Azure SignalR Service は Key Vault の最新バージョンを定期的にチェックします。 新しいバージョンが検出されると、自動的にそれが適用されます。 通常、遅延は 1 時間以内です。

または、Key Vault の特定のシークレット バージョンにカスタム証明書をピン留めすることもできます。 新しい証明書を適用する必要がある場合は、シークレットバージョンを編集してから、カスタム証明書を事前に更新できます。

リソースをクリーンアップする

この記事で作成したリソースを使用する予定がない場合は、リソース グループを削除できます。

注意事項

リソース グループを削除すると、その中に含まれているすべてのリソースが削除されます。 この記事の範囲外のリソースが指定されたリソース グループに存在する場合は、それらのリソースも削除されます。