如何設定 Azure SignalR Service 的自訂網域
除了 Azure SignalR Service 所提供的預設網域之外,您也可以將自訂 DNS 網域新增至您的服務。 在本文中,您將了解如何將自訂網域新增至您的SignalR Service。
注意
自訂網域是進階層功能。 標準層資源可以升級至進階層,而不需要停機。
若要設定自訂網域,您需要:
- 新增自訂網域憑證。
- 建立 DNS CNAME 記錄。
- 新增自訂網域。
必要條件
- 透過 Azure App Service 或協力廠登錄器註冊的自訂網域。
- 具有有效訂用帳戶的 Azure 帳戶。
- 如果您沒有,可以免費建立一個。
- Azure 資源群組。
- Azure SignalR Service 資源。
- Azure Key Vault 執行個體。
- 儲存在金鑰保存庫執行個體中的自訂網域 SSL 憑證。 請參閱開始使用 Key Vault 憑證
- Azure DNS 區域。 (選擇性)
新增自訂憑證
您必須先新增自訂 SSL 憑證,才能新增自訂網域。 您的 SignalR Service 會透過受控識別存取儲存在金鑰保存庫中的憑證。
新增網域憑證有三個步驟。
- 在您的 SignalR Service 中啟用受控識別。
- 為受控識別提供金鑰保存庫的存取權。
- 將自訂憑證新增至您的 SignalR Service。
在 SignalR Service 中啟用受控識別
您可以使用系統指派或使用者指派的受控識別。 本文示範如何使用系統指派的受控識別。
在 Azure 入口網站中,移至您的 SignalR Service 資源。
從左側功能表中選取 [身分識別]。
在 [系統指派] 資料表,將 [狀態] 設定為 [開啟]。
當系統提示您啟用系統指派的受控識別時,請依序選取 [儲存] 和 [是]。
建立身分識別之後,就會顯示物件 (主體) 識別碼。 SignalR Service 將會使用系統指派受控識別的物件識別碼來存取金鑰保存庫。 受控識別的名稱與 SignalR Service 執行個體的名稱相同。 在下一節中,您必須使用名稱或物件識別碼來搜尋主體 (受控識別)。
為受控識別提供金鑰保存庫的存取權
SignalR Service 會使用受控識別來存取金鑰保存庫。 您必須授與受控識別權限,才能存取您的金鑰保存庫。
授與權限的步驟取決於您選取保存庫存取原則或 Azure 角色型存取控制來作為金鑰保存庫權限模型。
- 保存庫存取原則
- Azure 角色型存取控制 \(部分機器翻譯\)
如果您使用保存庫存取原則作為金鑰保存庫權限模型,請遵循此程序來新增存取原則。
移至您的金鑰保存庫資源。
從左側的功能表中選取 [存取原則]。
選取 建立。
在 [權限] 索引標籤中:
- 在 [祕密權限] 下,選取 [取得]。
- 在 [憑證權限] 下選取 [取得]。
選取 [下一步] 以前往 [主體] 索引標籤。
在搜尋方塊中輸入受控識別的物件識別碼。
從搜尋結果中選取受控識別。
選取 [檢閱 + 建立] 索引標籤。
從 [檢閱 + 建立] 索引標籤中選取 [建立]。
SignalR Service 執行個體的受控識別會列在存取原則資料表中。
將自訂憑證新增至您的 SignalR Service
使用下列步驟將自訂憑證新增至您的 SignalR Service:
在 Azure 入口網站中,移至您的 SignalR Service 資源。
在功能表窗格中,選取 [自訂網域]。
在 [自訂憑證] 底下,選取 [新增]。
輸入自訂憑證的名稱。
選取 [從您的金鑰保存庫選取],以選擇金鑰保存庫憑證。 選取下列金鑰保存庫基底 URI 之後,金鑰保存庫祕密名稱應該會自動填入。 您也可以手動填入這些欄位。
如果您想要將憑證釘選到特定版本,可以自行選擇是否指定金鑰保存庫祕密版本。
選取 [新增]。
SignalR Service 會擷取憑證並驗證其內容。 成功時,憑證的 [佈建狀態] 將會是 [成功]。
建立自訂網域的 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 區域,請參閱管理 DNS 記錄以了解如何新增 CNAME 記錄。
如果您使用其他 DNS 提供者,請遵循提供者指南來建立 CNAME 記錄。
新增自訂網域
現在,將自訂網域新增至您的 SignalR Service。
在 Azure 入口網站中,移至您的 SignalR Service 資源。
在功能表窗格中,選取 [自訂網域]。
在 [自訂網域] 底下,選取 [新增]。
輸入自訂網域的名稱。
輸入自訂網域的完整網域名稱,例如
contoso.com
。選取套用至此自訂網域的自訂憑證。
選取 [新增]。
驗證自訂網域
若要驗證自訂網域,您可以使用健康情況 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
狀態碼,而不會發生任何憑證錯誤。
在私人網路中存取金鑰保存庫
如果您已對金鑰保存庫設定私人端點,您的 SignalR Service 將無法透過公用網路存取您的金鑰保存庫。 您可以藉由建立共用私人端點,讓 SignalR Service 透過私人網路存取您的金鑰保存庫。
建立共用私人端點之後,您可以新增自訂憑證,如將自訂憑證新增至您的 SignalR Service 一節中所述。
重要
您不需要變更金鑰保存庫 URI 中的網域。 例如,如果您的金鑰保存庫基底 URI 是 https://contoso.vault.azure.net
,您將使用此 URI 來設定自訂憑證。
您不需要在金鑰保存庫防火牆設定中明確允許 SignalR Service IP 位址。 如需詳細資訊,請參閱金鑰保存庫私人連結診斷。
憑證輪換
如果您在建立自訂憑證時未指定秘密版本,Azure Web SignalR Service 會定期檢查 Key Vault 中的最新版本。 發現新版本時,就會自動套用。 延遲通常在 1 小時內。
或者,您也可以將自訂憑證釘選到 Key Vault 中的特定秘密版本。 當您需要套用新的憑證時,您可以編輯秘密版本,然後主動更新自訂憑證。
清理
如果不打算使用您在本文中建立的資源,您可以刪除資源群組。
警告
刪除資源群組會刪除其中的所有資源。 如果本文章範圍以外的資源存在於指定的資源群組中,則也會一併刪除。