为外部租户中的应用启用自定义 URL 域(预览版)
适用于: 员工租户 外部租户(了解详细信息)
本文介绍了如何为外部租户中的 Microsoft Entra 外部 ID 应用程序启用自定义 URL 域。 自定义 URL 域让你可以使用自定义 URL 域(而不是 Microsoft 的默认域名)对应用程序的登录终结点进行品牌打造。
重要
此功能目前以预览版提供。 有关适用于 beta 版本、预览版或尚未正式发布版本的 Azure 功能和服务的法律条款,请参阅联机服务的通用许可条款。
先决条件
- 了解自定义 URL 域在外部 ID 中的工作原理。
- 如果你尚未创建自己的外部租户,请立即创建一个。
- 创建用户流,以便用户能够注册并登录应用程序。
- 注册 Web 应用程序。
步骤 1:为租户添加自定义域名
创建外部租户时,它附带初始域名 <domainname.onmicrosoft.com>。 无法更改或删除初始域名,但可添加你自己的自定义域名。 对于这些步骤,请务必在 Microsoft Entra 管理中心登录到你的外部租户配置。
至少以域名管理员身份登录到 Microsoft Entra 管理中心。
选择你的外部租户:选择顶部菜单中的设置图标,然后切换到外部租户。
导航到“标识”>“设置”>“域名”>“自定义域名”。
将 DNS 信息添加到域注册机构。 将自定义域名添加到你的租户后,为你的域创建一个 DNS
TXT
或MX
记录。 为域创建此 DNS 记录可以验证域名的所有权。以下是 login.contoso.com 和 account.contoso.com 的 TXT 记录示例:
名称(主机名) 类型 数据 login TXT MS=ms12345678 account TXT MS=ms87654321 TXT 记录必须与域的子域或主机名相关联(例如,contoso.com 域的 login 部分)。 如果主机名为空或
@
,则 Microsoft Entra ID 无法验证你添加的自定义域名。提示
可使用任何公开提供的 DNS 服务(例如 GoDaddy)来管理你的自定义域名。 如果没有 DNS 服务器,可使用 Azure DNS 区域或应用服务域。
验证自定义域名。 验证你计划使用的每个子域或主机名。 例如,要能够通过 login.contoso.com 和 account.contoso.com 登录,需要验证这两个子域,而不只是顶级域 contoso.com。
重要
验证域后,删除创建的 DNS TXT 记录。
步骤 2:将自定义域名与自定义 URL 域相关联
添加并验证外部租户中的自定义域名后,将自定义域名与自定义 URL 域相关联。
选择你的外部租户:选择顶部菜单中的设置图标,然后切换到外部租户。
导航到“标识”>“设置”>“域名”>“自定义 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。 将自定义 URL 域与你的 Front Door 相关联
在 Azure 门户主页中搜索
ciamazurefrontdoor
Azure Front Door 资源,并将其选中以将其打开。在左侧菜单中的“设置”下,选择“域”。
选择“添加域”。
对于“DNS 管理”,请选择“所有其他 DNS 服务”。
对于“自定义域”,请输入你的自定义域,例如
login.contoso.com
。将其他值保留默认值,然后选择“添加”。 你的自定义域随即会添加到列表中。
在刚刚添加的域的“验证状态”下,选择“等待中”。 此时会打开一个包含 TXT 记录信息的窗格。
登录到你的自定义域的域提供商的网站。
查阅提供商的文档,或者在网站中搜索标有“域名”、“DNS”或“名称服务器管理”的区域,找到用于管理 DNS 记录的页面。
创建新的 TXT DNS 记录并完成以下字段:
- Name:只输入
_dnsauth.contoso.com
的子域部分,例如_dnsauth
- 类型:
TXT
- Value:例如,
75abc123t48y2qrtsz2bvk......
添加 TXT DNS 记录后,Front Door 资源中的“验证状态”最终将从“等待中”更改为“已批准”。 你可能需要刷新页面才能看到更改。
- Name:只输入
在 Azure 门户中。 在刚刚添加的域的“终结点关联”下,选择“未关联”。
对于“选择终结点”,请从下拉列表中选择主机名终结点。
对于“选择路由”列表,请选择“default-route”,然后选择“关联”。
4.3。 启用路由
default-route 将流量从客户端路由到 Azure Front Door。 然后,Azure Front Door 使用你的配置将流量发送到外部租户。 要启用 default-route,请按以下步骤操作。
选择“Front Door 管理器”。
要启用 default-route,请首先从 Front Door 管理器中的终结点列表中展开某个终结点。 然后选择“default-route”。
选中“启用路由”复选框。
选择“更新”以保存更改。
测试自定义 URL 域
选择你的外部租户:选择顶部菜单中的设置图标,然后切换到外部租户。
在“外部标识”下,选择“用户流”。
选择一个用户流,然后选择“运行用户流”。
对于“应用程序”,请选择前面已注册的名为 webapp1 的 Web 应用程序。 “回复 URL”应显示为
https://jwt.ms
。复制“运行用户流终结点”下的 URL。
若要使用自定义域模拟登录,请打开 Web 浏览器并使用复制的 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
将:
- 具有你的自定义 URL 域的 custom-url-domain
- tenant-name 替换为租户名称或租户 ID
SAML 服务提供商元数据可能如以下示例所示:
https://custom-url-domain-name/tenant-name/Samlp/metadata
(可选)使用租户 ID
可以将 URL 中的外部租户名称替换为你的租户 ID GUID,以便移除对 URL 中 "onmicrosoft.com" 的所有引用。 可以在 Azure 门户或 Microsoft Entra 管理中心的“概述”页中找到租户 ID GUID。 例如,将 https://account.contosobank.co.uk/contosobank.onmicrosoft.com/
更改为 https://account.contosobank.co.uk/<tenant-ID-GUID>/
。
如果选择使用租户 ID 而不是租户名称,请确保相应地更新标识提供者的 OAuth 重定向 URI。 使用租户 ID 而不是租户名称时,有效的 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 配置文件位于同一个层。 若要详细了解如何创建 WAF 策略以用于 Azure Front Door,请参阅配置 WAF 策略。
- WAF 托管规则功能不受官方支持,因为它可能会导致误报并阻止合法请求通过,因此请仅使用符合需求的 WAF 自定义规则。
故障排除
找不到页面消息。 当你尝试使用自定义 URL 域登录时,会收到 HTTP 404 错误消息。 此问题可能与 DNS 配置或 Azure Front Door 后端配置相关。 请尝试以下步骤:
- 请确保该自定义 URL 域在你的租户中已注册并成功通过验证。
- 请确保该自定义域配置正确。 自定义域的
CNAME
记录必须指向 Azure Front Door 默认的前端主机(例如 contoso-frontend.azurefd.net)。
我们的服务当前不可用消息。 当你尝试使用自定义 URL 域登录时,收到错误消息:我们的服务当前不可用。我们正在努力尽快恢复所有服务。请稍后回来查看。此问题可能与 Azure Front Door 路由配置有关。 检查 default-route 的状态。 如果它已被禁用,请启用该路由。
资源已被移除、已更改名称或暂时不可用。 当你尝试使用自定义 URL 域登录时,收到错误消息“你查找的资源已被移除、已更改名称或暂不可用”。 此问题可能与 Microsoft Entra 自定义域验证相关。 请确保该自定义域在你的租户中已注册并成功通过验证。
错误代码 399265:RoutingFromInvalidHost。 当租户从未验证的域发出请求时,将显示此错误代码。 请确保在你的 DNS 记录中添加 TXT 记录详细信息。 然后再次验证你的自定义域名。
错误代码 399280:InvalidCustomUrlDomain。 当租户从不是自定义 URL 域的已验证域发出请求时,将显示此错误代码。 请确保将自定义域名与自定义 URL 域相关联。
后续步骤
请参阅我们所有的关于生成适用于外部 ID 的应用的示例指南和教程。