本文介绍自定义域名的配置和常见用法。
基础介绍
通过自定义域名能力,您可以将IDaaS EIAM的登录页、用户门户等IDaaS EIAM页面的地址替换为属于您的域名,从而保持企业品牌的一致性。
通过搭建域名代理服务,您也可以管理用户访问IDaaS EIAM的权限,例如只有指定IP的用户才可登录应用门户。
基本概念
概念 | 说明 |
初始化域名 | 创建IDaaS EIAM实例时由系统生成的域名,即xxxx.aliyunidaas.com。 |
自定义域名 | 属于您的添加到IDaaS EIAM实例的域名,如xxxx.example.com。 |
默认域名 | IDaaS EIAM实例默认使用的域名,需选择一个初始化域名或自定义域名。此外,开启自动跳转后,访问初始化域名时将自动跳转到默认域名。 |
影响范围
以下是受自定义域名影响的功能点,如有需要,请在配置自定义域名之前或之后调整相关配置。
影响对象 | 功能点 | 说明 |
用户门户 | 登录页 | 登录页地址涉及域名。 |
应用门户 | 应用门户地址涉及域名。 | |
钉钉身份提供方-出方向 | 扫码登录/工作台免登 | 钉钉回调域名涉及域名,请始终使用初始化域名。 |
免登到IDaaS应用门户或应用 | 应用首页地址涉及域名。 | |
企业微信身份提供方-入方向 | 扫码登录 | 用户访问的域名(用户门户、直接访问自研/OIDC/SAML应用时的地址)和企业微信授权回调域必须一致,否则将无法使用企业微信扫码登录。 |
网页授权登录(工作台免登)和敏感数据同步 | 用户访问的域名(用户门户、直接访问自研/OIDC/SAML应用时的地址)和企业微信可信域名必须一致,否则将无法使用企业微信网页授权登录和敏感数据同步。 | |
OIDC应用/自研应用 | 授权端点 | 如果实例仅需使用一个自定义域名,则建议使用初始化域名,将自定义域名设为默认域名并开启自动跳转;如不开启,用户在单点登录时可能需要重新登录一次。 如果实例需要使用多个自定义域名,则需和用户的登录页域名保持一致,否则用户在单点登录时可能需要重新登录一次。 |
退出端点 | ||
SAML应用 | IdP Meta地址 | 如果实例仅需使用一个自定义域名,则建议使用初始化域名,将自定义域名设为默认域名并开启自动跳转;如不开启,用户在单点登录时可能需要重新登录一次。 如果实例需要使用多个自定义域名,则需和用户的登录页域名保持一致,否则用户在单点登录时可能需要重新登录一次。 |
SSO地址 | ||
WebAuthn | 注册认证器 | WebAuthn仅在注册认证器的域名中生效。例如,用户在A域名注册了WebAuthn认证器A1,访问B域名进行登录时不可使用认证器A1,需在B域名中重新注册认证器。用户可以拥有多个不同域名的认证器。 |
开始前准备
为了更顺畅地完成自定义域名的配置,建议您提前准备如下内容:
准备内容 | 说明 |
域名 | 您需要准备一个供IDaaS EIAM专用的域名,建议使用一级域名或二级域名。 |
域名所在DNS的操作权限 | 您需要在域名所在的DNS(如:阿里云DNS)中添加1~2次DNS记录,以验证您对域名的所有权。 |
备案号 | 如果您的网站托管在中国内地,则必须填写域名的备案号。 |
域名所在代理服务的操作权限 | 您需要在域名所在的代理服务(如:阿里云DCDN)中配置域名的HTTPS证书、回源HOST等信息。 |
试用或升级实例 |
添加自定义域名 - 域名配置
单击
即可开始添加。自定义域名可能影响登录、单点登录、数据同步等功能,为了避免影响您的业务,请在开启前了解自定义域名的影响范围。
步骤一:填写域名
输入自定义域名(如:login.example.com),这个域名在所有IDaaS EIAM实例中全局唯一。仅需填写域名本身,无需填写路径、参数等。支持小写字母、数字、中划线、英文点,最大字符长度128。
IDaaS团队将全力保障您实例的安全性,但理论上如果攻击者对您的IDaaS EIAM实例成功实施XSS攻击,将可能导致向同一域名下的不同子域名发起CSRF攻击。因此我们建议屏蔽从自定义域名发起的CORS请求,或者使用独立的一级域名作为自定义域名。
步骤二:添加DNS记录
请前往您的域名做在的DNS(如:阿里云DNS)添加记录,该步骤旨在验证您对域名的所有权。针对同一IDaaS EIAM实例、同一自定义域名,记录类型、记录名称和记录值固定不变,因此如果您无DNS的操作权限,可交由他人代为添加DNS记录,在完成添加后再添加自定义域名。
下面是在部分DNS服务商中添加解析记录的帮助文档:
步骤三:填写备案号
根据《互联网信息服务管理办法》,如果您的网站托管在中国内地,则必须填写主体备案号或网站备案号。为满足合规要求,如需使用自定义域名能力,在阿里云中国内地region的IDaaS EIAM实例均需填写。备案号将显示在实例的登录页。
步骤四:完成添加
确认信息填写无误后,点击完成添加,即可添加自定义域名。您还需要完成代理配置,才可正常使用自定义域名。
添加自定义域名 - 代理配置
您的用户或应用通过自定义域名访问IDaaS EIAM时,将由您的域名代理服务转发请求,您需要确保代理的可用性。以下是代理服务的配置方式。
阿里云DCDN
步骤一:添加域名
您需要在阿里云DCDN的域名管理页中添加域名。
加速域名:即您的自定义域名。
源站信息:
源站类型选择源站域名。
填写代理配置-源站信息的域名(不包含协议头https://),即您的IDaaS EIAM实例的初始化域名。
端口选择443。
完成添加后,您需要在DCDN中复制域名的CNAME记录,并前往域名DNS服务商处进行解析。详情可查看文档:配置CNAME。
步骤二:配置HTTPS证书
在阿里云DCDN的域名管理页中进入域名详情页,在配置 HTTPS中配置HTTPS证书。详情可查看文档:配置HTTPS证书。
步骤三:开启回源HOST
依然在域名详情页,在回源配置中开启回源HOST。
域名类型选择源站域名,此时会自动选择IDaaS EIAM实例的初始化域名。
步骤四:添加回源HTTP头
依然在域名详情页,在回源配置中单击自定义回源HTTPS头,添加IP、Host、Token等信息。这些信息可以防止IP地址欺骗,以提高访问的安全性。
完成配置后,您可以通过测试连接功能,让IDaaS EIAM实例模拟访问您的自定义域名。请注意,由于域名本身可设置访问策略(例如办公网IP才可访问域名),因此 IDaaS EIAM的测试结果仅供参考,建议您模拟用户的使用环境进行测试。
测试无误后,您需要根据影响范围确认和调整相关配置,并将自定义域名分发给您的用户(如果用户依然使用初始化域名,则建议开启自动跳转)。
Nginx 配置指引
步骤一:安装自建nginx服务
源码编译安装
#下载安装包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
#解压
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
#配置:指定Nginx的安装目录
./configure --prefix=/usr/local/nginx
#编译和安装
make && make install
#安装完后验证是否安装成功
cd /usr/local/nginx/sbin
./nginx -t
安装完成后,出现如下内容为安装成功:
nginx: the configuration file /usr/local/nginx//conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx//conf/nginx.conf test is successful
CentOS/AlmaLinux/RHEL 系统安装
# 安装 EPEL 仓库(部分系统需要)
sudo yum install epel-release -y
# 安装 Nginx
sudo yum install nginx -y
# 启动 Nginx 服务
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 检查服务状态
sudo systemctl status nginx
Ubuntu/Debian 系统安装
# 更新包列表
sudo apt update
# 安装 Nginx
sudo apt install nginx -y
# 启动 Nginx 服务
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 检查服务状态
sudo systemctl status nginx
步骤二:修改 Nginx 配置文件
查看nginx配置文件路径。
nginx -t
配置域名代理。
修改
nginx.conf
配置文件 HTTP 节点下的 server 节点。修改反向代理配置,将自定义域名例如
www.example.com
请求转发到*****.aliyunidaas.com
IDaaS 的域名。server { # 监听 HTTPS 端口并启用 SSL listen 443 ssl; # 域名配置(需要被转发的域名即用户的自定义域名) server_name www.example.com; location / { # 反向代理目标地址(配置的IDaaS用户门户域名地址) proxy_pass https://*****.aliyunidaas.com; } }
配置http请求转发https。
实现自定义域名HTTP访问自动重定向HTTPS 的方式,访问您的服务。提升安全性及SEO优化。
# HTTP 服务器块(监听 80 端口) server { listen 80; server_name www.example.com; # 配置 HTTP 请求重定向到 HTTPS location / { return 301 https://$host$request_uri; } }
配置 SSL 证书。
准备证书文件并上传到 nginx 服务器。
修改 Nginx 配置文件。
server { # HTTPS 服务器块(监听 443 端口) listen 443 ssl; server_name www.example.com; # SSL 证书路径(需替换为实际路径) ssl_certificate /usr/local/nginx/ssl/www.example.com.crt; ssl_certificate_key /usr/local/nginx/ssl/www.example.com.key; # SSL 配置(可选优化) ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; }
配置 IDaaS回源请求头。
修改 nginx.conf 配置文件,http 节点下的 server 节点。
通过 proxy_set_header 设置回源请求头。
# 配置IDaaS回源请求头 location / { proxy_pass http://***.aliyunidaas.com; # 传递客户端真实 IP proxy_set_header X-IDaas-Client-IP $remote_addr; # 传递主机头(需确认目标服务期望的 Host 值) proxy_set_header X-IDaas-Host eiam-idaas.idpsso.net; # 代理身份验证令牌(需保持与 IDaas 服务端配置一致) proxy_set_header X-IDaas-Proxy-Token PTC*****************************6j; # 保留原始 Host 头(可选) proxy_set_header Host $host; }
步骤三:重启 Nginx 服务
源码编译安装方式重启
sudo /usr/local/nginx/sbin/nginx -s reload
CentOS/AlmaLinux/RHEL 安装方式重启
sudo service nginx restart
Ubuntu/Debian 安装方式重启
sudo systemctl restart nginx
域名状态
由于域名本身可设置访问策略(例如办公网IP才可访问域名),因此IDaaS EIAM无法确认自定义域名是否在正常运行,因此域名的可用状态仅表示实例的域名功能可被使用,不代表域名可被正常访问。您需自行确认自定义域名是否正常运行。
修改默认域名
默认域名指的是实例默认使用的域名,作用有两个:
如果开启了自动跳转功能,您的用户或应用在访问初始化域名时,自动跳转到默认域名。
在控制台的多处展示,例如用户门户地址、登录地址。
如果选择了自定义域名作为默认域名且开启了自动跳转,当自定义域名不可用(例如实例过期)时,需手动修改默认域名,否则可能影响您的用户或应用对实例的访问。
开启自动跳转
自动跳转指的是用户或应用访问实例的初始化域名时,将自动跳转到默认域名。访问自定义域名时不会跳转到默认域名。如果您仅需要使用一个自定义域名,建议将其设置为默认域名并开启自动跳转,此时您的用户无论是访问初始化域名或该自定义域名,都可以顺畅地完成应用的单点登录,而无需修改应用的单点登录配置。
如果没有开启该能力或者需要使用多个自定义域名,则需要将应用的单点登录等配置(详见影响范围)调整为自定义域名,否则可能影响您的正常使用,例如:用户在单点登录时可能需要重新登录一次、无法扫码登录企业微信等。
删除自定义域名
删除自定义域名前,请检查该域名是否正在被使用(如身份提供方、应用的单点登录配置等),弹窗中的域名最后使用时间可为您提供参考;该时间也是proxy_token
的最后使用时间,您可以在代理配置中直接查看。
删除自定义域名后,无法立即使用该域名访问IDaaS EIAM实例。建议清除本文档中涉及的域名DNS服务商和代理服务的相关配置,以防在后续的使用中造成域名转发的错乱。