適用於: 員工租戶
外部租戶(深入了解)
本文說明如何在外部租使用者中為Microsoft Entra External ID 應用程式啟用 自定義 URL 網域 。 自訂 URL 網域可讓您使用您自己的自訂 URL 網域,將應用程式的登入端點品牌化,而不是使用 Microsoft 的預設網域名稱。
必要條件
- 瞭解自訂 URL 網域在外部 ID 中的運作方式。
- 如果您尚未建立外部租戶,請立即建立一個外部租戶。
- 建立使用者流程 ,讓使用者可以註冊並登入您的應用程式。
- 註冊 Web 應用程式。
步驟 1:將自訂網域名稱新增至租用戶
當您創建外部租用戶時,會附帶一個初始網域名稱:<domainname>.onmicrosoft.com。 您無法變更或刪除初始網域名稱,但可以新增您自己的自訂網域名稱。 針對這些步驟,請務必在 Microsoft Entra 系統管理中心登入 您的外部 租用戶設定。
以至少域名系統管理員身分登入 Microsoft Entra 系統管理中心。
選擇您的「外部」租用戶:選取頂端功能表中的 [設定] 圖示,然後切換至您的外部租用戶。
流覽至 Entra ID>網域名稱>自訂網域名稱。
將自訂網域名稱新增 至 Microsoft Entra ID。
將 DNS 資訊新增至網域註冊機構。 將自訂網域名稱新增至您的租用戶之後,請為您的網域建立 DNS
TXT
或MX
記錄。 為您的網域建立此 DNS 記錄可確認網域名稱的所有權。以下是 login.contoso.com 和 account.contoso.com 的 TXT 記錄範例:
名稱 (主機名稱) 類型 資料 登錄 TXT MS=ms12345678 帳戶 TXT MS=ms87654321 TXT 記錄必須與網域的子網域或主機名稱相關聯 (例如,contoso.com 網域的「登入」部分)。 如果主機名稱是空白或
@
,則 Microsoft Entra ID 無法驗證您新增的自訂網域名稱。提示
您可以使用任何公開可用的 DNS 服務來管理自訂網域名稱,例如 GoDaddy。 如果您沒有 DNS 伺服器,您可以使用 Azure DNS 區域或 App Service 網域。
確認您的自訂網域名稱。 驗證您打算使用的每個子網域 (即主機名稱)。 例如,若要能夠使用 login.contoso.com 和 account.contoso.com 登入,您必須驗證子域,而不只是最上層網域 contoso.com。
重要
確認網域之後,請刪除您建立的 DNS TXT 記錄。
步驟 2:將自訂自訂網域名稱與自訂 URL 網域產生關聯
在您新增並驗證外部租用戶中的自訂網域名稱之後,請建立自訂網域名稱與自訂 URL 網域的關聯。
選擇您的「外部」租用戶:選取頂端功能表中的 [設定] 圖示,然後切換至您的外部租用戶。
流覽至 Entra ID>網域名稱>自訂 URL 網域。
選取 [新增自定義 URL 網域]。
在 新增自訂 URL 網域 窗格中,選取您在 步驟 1 中輸入的自訂網域名稱。
選取 [新增]。
步驟 3:新建 Azure Front Door 執行個體
請遵循下列步驟來建立 Azure Front Door:
登入 Azure 入口網站。
選擇包含 Azure Front Door 訂用帳戶的租用戶:選取頂端功能表中的 [設定] 圖示,然後切換至包含 Azure Front Door 訂用帳戶的租用戶。
請遵循 建立 Front Door 配置檔 - 快速建立 中的步驟,使用下列設定為您的租戶建立一個 Front Door。 將 [快取] 和 [WAF 原則] 設定保留空白。
鍵 價值 訂用帳戶 選取 Azure 訂閱。 資源群組 選取現有的資源群組或建立新群組。 名稱 為您的個人檔案命名,例如 ciamazurefrontdoor
。層 選取標準或進階服務層級。 標準層級已針對內容傳遞進行最佳化。 進階層級以標準層為基礎,並著重於安全性。 請參閱 階層比較。 端點名稱 輸入端點的全域唯一名稱,例如 ciamazurefrontdoor
。 端點主機名會自動產生。原始類型 選取 Custom
。原點主機名稱 輸入 <tenant-name>.ciamlogin.com
。 將<tenant-name>
替換成您的租戶名稱,例如contoso.ciamlogin.com
。建立 Azure Front Door 資源之後,請選取 [ 概觀],然後複製 端點主機名 以供後續步驟使用。 它看起來像
ciamazurefrontdoor-ab123e.z01.azurefd.net
。請確定來源的 [主機名稱] 和 [原始主機標頭] 是相同的值:
- 在 [設定] 下,選取 [原始群組]。
- 從清單中選取您的原始群組,例如 default-origin-group。
- 在右窗格中,選取 [原始主機名稱],例如
contoso.ciamlogin.com
。 - 在 [更新原始] 窗格中,將 [主機名稱] 和 [原始主機標頭] 更新為相同的值。
步驟 4:在 Azure Front Door 上設定自訂 URL 網域
在此步驟中,您會將您在 步驟 1 中註冊的自定義 URL 網域新增至 Azure Front Door。
4.1. 建立 CNAME DNS 記錄
若要新增自訂 URL 網域,請透過網域提供者建立正式名稱(CNAME)記錄。 CNAME 記錄是一種 DNS 記錄,可將來源網域名稱對應至目的地網域名稱。 在 Azure Front Door 中,來源網域名稱為自訂 URL 網域名稱,而目的地網域名稱是您在步驟 2 中設定的 Front Door 預設主機名稱,例如 ciamazurefrontdoor-ab123e.z01.azurefd.net
。
在 Front Door 驗證您建立的 CNAME 記錄後,傳到來源自訂 URL 網域 (例如 login.contoso.com
) 的流量會路由傳送至指定目的地 Front Door 預設前端主機,例如 contoso-frontend.azurefd.net
。 如需詳細資訊,請參閱 將自定義網域新增至 Front Door。
若要建立自訂網域的 CNAME 記錄:
登入自訂網域的網域提供者網站。
透過查閱提供者的文件或搜尋網站標示為 域名、 DNS 或 名稱伺服器管理的區域,尋找管理 DNS 記錄的頁面。
建立自訂 URL 網域的 CNAME 記錄項目,並完成下表說明的欄位。
來源 類型 目的地 <login.contoso.com>
CNAME contoso-frontend.azurefd.net
來源:輸入自訂 URL 網域 (例如 login.contoso.com)。
輸入:輸入 CNAME。
目的地:輸入您在 步驟 2 中建立的預設 Front Door 前端主機。 必須使用下列格式:<主機名稱>.azurefd.net,例如
contoso-frontend.azurefd.net
。
儲存您的變更。
4.2. 將自訂網址網域與 Front Door 服務建立關聯
在 Azure 入口網站首頁中,搜尋並選取
ciamazurefrontdoor
Azure Front Door 資源以開啟。在 [設定] 下方的左側功能表中,選取 [網域]。
選取 [新增網域]。
針對 [DNS 管理],選取 [所有其他 DNS 服務]。
針對 [自訂網域],輸入您的自訂網域,例如
login.contoso.com
。將其他的值保留為預設值,然後選取 [新增]。 您的自訂網域會新增至清單。
在您剛才新增的網域 [驗證狀態] 下,選取 [擱置]。 開啟含有 TXT 記錄資訊的窗格。
登入自訂網域的網域提供者網站。
透過查閱提供者的文件或搜尋網站標示為 域名、 DNS 或 名稱伺服器管理的區域,尋找管理 DNS 記錄的頁面。
建立新的 TXT DNS 記錄並完成以下欄位:
-
名稱:只輸入 的
_dnsauth.contoso.com
子域部分,例如_dnsauth
-
類型:
TXT
-
值:例如
75abc123t48y2qrtsz2bvk......
新增 TXT DNS 記錄後,Front Door 資源中的 [驗證狀態] 最終會從 [擱置] 變更為 [已核准]。 您可能需要重新整理頁面以看到變更。
-
名稱:只輸入 的
在 Azure 入口網站中。 在您剛才新增網域的 [端點關聯] 下,選取 [未關聯]。
針對 [選取端點],從下拉式清單中選取主機名稱端點。
針對 [選取路由] 清單,選取 [預設路由],然後選取 [關聯]。
4.3. 啟用路由
默認路由會將流量從用戶端路由傳送至 Azure Front Door。 然後,Azure Front Door 會使用您的設定將流量傳送至外部租用戶。 請遵循下列步驟來啟用預設路由。
選取 Front Door manager。
若要啟用 預設路由,請先從 Front Door 管理員中的端點清單中展開端點。 然後,選取 預設路由。
選取 [已啟用路由 ] 複選框。
選取 [更新] 以儲存變更。
測試您的自訂 URL 網域
選擇您的「外部」租用戶:選取頂端功能表中的 [設定] 圖示,然後切換至您的外部租用戶。
在 [外部身分識別] 底下,選取 [使用者流程]。
選取使用者流程,然後選取 [執行使用者流程]。
針對 [應用程式],選取您先前註冊的 Web 應用程式名為 webapp1 。 回覆 URL 應該會顯示
https://jwt.ms
。複製「執行使用者流程端點」 之下的 URL。
若要模擬透過自訂網域登入,請開啟網頁瀏覽器並使用您複製的 URL。 將網域 (<tenant-name.ciamlogin.com>) 取代為您的自訂網域。
例如,不要這樣寫:
https://contoso.ciamlogin.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_susi&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login
使用:
https://login.contoso.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_susi&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login
確認登入頁面已正確載入。 然後,使用本機帳戶登入。
設定您的應用程式
設定並測試自訂 URL 網域之後,請更新您的應用程式來載入以自訂 URL 網域作為主機名稱的 URL,而不是使用預設網域。
自訂的 URL 網域配置適用於使用外部 ID 使用者流程來認證使用者的認證端點。 這些端點的格式如下:
https://<custom-url-domain>/<tenant-name>/v2.0/.well-known/openid-configuration
https://<custom-url-domain>/<tenant-name>/oauth2/v2.0/authorize
https://<custom-url-domain>/<tenant-name>/oauth2/v2.0/token
取代:
- 自訂網址域名 搭配您的自訂網址域名
- 將tenant-name替換為您的租用戶名稱或租用戶標識碼
SAML 服務提供者中繼資料如下列範例所示:
https://custom-url-domain-name/tenant-name/Samlp/metadata
(選用) 使用租用戶識別碼
您可以將 URL 中的外部租用戶名稱換成租用戶識別碼 GUID,以移除 URL 中對 “onmicrosoft.com” 的所有參考。 您可以在 Azure 入口網站或 Microsoft Entra 系統管理中心的 [概觀] 頁面中找到租用戶識別碼 GUID。 例如,將 https://account.contosobank.co.uk/contosobank.onmicrosoft.com/
變更為 https://account.contosobank.co.uk/<tenant-ID-GUID>/
。
如果您選擇使用租使用者標識碼而非租用戶名稱,請務必據以更新識別提供者 OAuth 重新導向 URI 。 當您使用租用戶識別碼而非租用戶名稱時,有效的 OAuth 重新導向 URI 看起來會類似下列範例:
https://login.contoso.com/00001111-aaaa-2222-bbbb-3333cccc4444/oauth2/authresp
(選用) Azure Front Door 進階設定
您可以使用 Azure Front Door 進階設定,例如 Azure Web 應用程式防火牆 (WAF)。 Azure WAF 可集中保護 Web 應用程式,使其免於遭遇常見的攻擊和弱點。
使用自訂網域時,請考慮下列幾點:
- WAF 原則必須與 Azure Front Door 設定檔位於相同的階層。 如需如何建立與 Azure Front Door 搭配使用的 WAF 原則的詳細資訊,請參閱 設定 WAF 原則。
- WAF 受控規則功能並未正式支援,因為它可能會導致誤判,並防止合法要求通過,因此請在符合您的需求時才使用 WAF 自訂規則。
(選擇性)封鎖預設網域
設定自定義 URL 網域之後,使用者仍然可以存取預設網域名稱 <tenant-name>.ciamlogin.com。 您必須封鎖預設網域的存取,讓攻擊者無法使用它來存取您的應用程式,或執行分散式阻斷服務 (DDoS) 攻擊。 提交支援票證以要求封鎖預設網域的存取權。
謹慎
在您要求封鎖預設網域之前,請確定您的自定義網域可正常運作。 封鎖預設網域之後,某些功能將無法再運作。 請參閱 封鎖預設網域。
疑難排解
無法找到頁面訊息。 當您嘗試使用自訂 URL 網域登入時,出現 HTTP 404 錯誤訊息。 此問題可能與 DNS 設定或 Azure Front Door 後端設定有關。 請嘗試下列步驟:
- 請確保在您的租用戶中自訂 URL 網域已註冊並成功驗證。
- 請確定 自定義網域 已正確設定。 自訂網域的
CNAME
記錄必須指向 Azure Front Door 預設前端主機 (例如,contoso-frontend.azurefd.net)。
我們的服務目前無法使用的訊息。 當您嘗試使用自定義 URL 網域登入時,您會收到錯誤訊息: 我們的服務目前無法使用。我們正在儘快還原所有服務。請很快回來查看。 此問題可能與 Azure Front Door 路由設定有關。 檢查 預設路由的狀態。 如果已停用,請啟用路由。
資源已移除、變更名稱或暫時無法使用。 當您嘗試透過自訂 URL 網域登入時,出現錯誤訊息:「您尋找的資源已移除、變更名稱,或暫時無法使用」。 此問題可能與 Microsoft Entra 自訂網域驗證有關。 請確定自定義網域已在租用戶中註冊並 成功驗證 。
錯誤碼 399265:RoutingFromInvalidHost。 當租用戶從未經驗證的網域提出要求時,就會出現此錯誤碼。 請務必 在 DNS 記錄中新增 TXT 記錄詳細數據。 然後重新確認您的自訂網域名稱。
錯誤碼 399280:無效自訂網址域名 (InvalidCustomUrlDomain)。 當租用戶從不是自訂 URL 網域的已驗證網域提出要求時,就會出現此錯誤碼。 請務必 將自定義網域名稱與自定義網址網域產生關聯。
下一步
請參閱我們所有的 範例指南和教學課程,瞭解如何建置取得外部 ID 的應用程式。