概述。
在 Active Directory 环境中,使用集成 Windows 身份验证 (Kerberos) 允许用户使用与登录 Windows 时相同的身份验证凭据。自动单点登录 (SSO) 到 CAMServer,无需额外登录 C&M。 能。
传统上,该系统需要使用 IIS/ASP.NET 构建,但借助此功能,CAMServer 可以直接处理 Kerberos 身份验证。这使得使用集成的 Windows 身份验证配置 SSO 更加简单,无需额外的服务器(例如 IIS)。
SSO 流量
单点登录处理流程
- 访问 CAM 服务器
用户通过浏览器访问 CAMServer。访问时,会通过 POST 请求发送一个应用程序的临时令牌。 - 身份验证请求
验证临时令牌后,CAMServer 会向浏览器请求 Windows 身份验证(协商)。 - Kerberos票据获取
浏览器使用Windows登录信息。
从 Active Directory KDC 获取 Kerberos 服务票证。 - 发送 Kerberos 票据
浏览器使用已获取的 Kerberos 票据。
添加 HTTP 标头并将消息重新发送到 CAMServer。 - 票务验证
CAMServer 使用 keytab 来验证 Kerberos 票据。如果验证成功,它会检索票据中包含的 Kerberos 主体。 - LDAP 搜索和 CAM 用户匹配
系统使用检索到的 Kerberos 主体执行 LADP 搜索,从 AD 获取用户信息,并将其与 CAMServer 中注册的用户进行比较。如果找到匹配项,则允许登录。 - 登录完成
CAMServer 发出登录会话,
用户无需显示登录屏幕即可使用 CAMServer。
如果您使用除 Windows 身份验证所用的 FQDN 之外的域名访问该站点,或者如果您从未加入域的 PC 访问该站点,则将在命令和管理服务器 (C&M) 上执行登录身份验证。
运行要求
使用此功能需要以下环境。
活动目录环境
- 必须建立Active Directory域。
CAMServer
- 终极计划使用
- CAMServer 必须可通过其完全限定域名 (FQDN) 访问。
- 运行 CAMServer 的 Windows 服务器必须加入 Active Directory 域。
要检查现有 Windows Server 加入到哪些域,请转到“服务器管理器”→单击左侧菜单中的“本地服务器”→单击“计算机名称”并参考域字段。
用户
- 用户的电脑必须加入域,并通过该域登录 Windows。
- 符合 SSO 资格的用户是指其用户 ID 为 用户主体名称 (您必须预先在 CAMServer 上注册,注册信息格式为 UPN(例如,user@camtest.com))
支持的浏览器
Windows身份验证SSO可在以下浏览器中使用。
- Microsoft Edge
- Google Chrome
- 摄像头应用
关于负载均衡器配置
Windows 身份验证 (Kerberos) 是一种使用 HTTP 身份验证标头进行协商的身份验证方法,因此 CAMServer 必须保持在 443 端口上运行,并且负载均衡器必须是 L4 (TLS 直通)。
推荐配置
用户 ──HTTPS──▶ L4 负载均衡器(TLS 直通) ──HTTPS──▶ CAMServer(443)
NG配置
用户──HTTPS──▶ L7 负载均衡器(SSL 终止)──HTTP──▶ CAMServer(8080)
施工程序
以下设置步骤将根据“配置示例”进行说明。
配置示例
- Windows 身份验证的 FQDN:
https://test.chat-messenger.com - Active Directory 域名:
camtest.com - 服务帐户:
cam-svc@camtest.com(CAMTEST\cam-svc)
SPN注册概述
SPN(服务主体名称)是在 Kerberos 身份验证中唯一标识 Active Directory 上特定服务的名称。如果您使用 FQDN 访问服务,注册 SPN 将使客户端能够成功为您正在访问的服务请求 Kerberos 票证。
例如 https://test.chat-messenger.com 访问服务时,客户端(浏览器)会向 Active Directory 请求一个票据,声明“我想连接到名为 HTTP/test.chat-messenger.com 的服务”。Active Directory 会检查 SPN 关联的帐户,并颁发相应的服务票据。如果 SPN 注册不正确,Kerberos 身份验证将失败。
服务帐户
为 Kerberos 身份验证创建服务帐户。虽然可以使用域用户帐户创建服务帐户,但通常建议将用户帐户和服务帐户分开,以防止意外错误并明确密码策略的应用范围。OU=服务帐户 就像,OU 用户 与 Active Directory 域控制器不同,凸轮服务 创建一个新的。
请在您的账户选项中检查以下内容。
- 设置密码永不过期
- 此帐户支持 Kerberos AES 256 位加密。
使用服务帐户注册 SPN
setspn -S HTTP/test.chat-messenger.com CAMTEST\cam-svc使用上面创建的服务帐户注册 SPN。
- 任何属于域的终端均可使用。但需要域管理员权限。
・SPN 也用于 HTTPS 通信。HTTP/主机名您必须按照以下格式注册:
使用以下命令验证 SPN 是否已注册。
setspn -L CAMTEST\cam-svc创建 keytab
要使 CAMServer 能够验证 Kerberos 票证,请为服务帐户创建 keytab 文件。在 Active Directory 管理服务器上运行以下命令:
ktpass /out CAMServer\config\windowsAuth\cam.keytab /princ HTTP/test.chat-messenger.com@CAMTEST.COM /mapuser CAMTEST\cam-svc /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1 /pass "*******"CAM服务器设置
要使用 Windows 身份验证,请将以下内容添加到 CAMServer 配置文件 (boot.ini) 中。请根据您的环境替换每个值。
# Kerberos レルム(通常は Active Directory ドメイン名を大文字で指定)
# 例: camtest.com ドメイン → CAMTEST.COM
cam.windowsAuth.realm=CAMTEST.COM
# Windows認証を行うFQDN
cam.windowsAuth.FQDN=test.chat-messenger.com
# Kerberos KDC
# 通常は Active Directory のドメインコントローラのFQDN。ポートTCP/UDP 88 は Kerberos 標準ポートでリッスンされている
cam.windowsAuth.kdc=ad.camtest.com:88
设置互联网选项
将 CAMServer 的 FQDN 添加到 intranet 区域。
选择“Internet 选项”,单击“安全”选项卡,然后选择“本地 Intranet”。单击“站点”按钮,选择“高级”,然后添加站点 URL(https://test.chat-messenger.com)。
检查自动登录
单击“自定义级别”,然后在“用户身份验证”→“登录”下,确保选中“在内网区域自动登录”。
从使用 IIS 集成 Windows 身份验证的 SSO 迁移
- 卸载 IIS 功能(服务器管理器 > 管理 > 删除角色和功能)
- 卸载 ASP.NET Core Hosting Bundle
- 服务帐户是此帐户支持 Kerberos AES 256 位加密。“查看
- 键盘标签 创造
- 在 Internet 选项设置中,将 CAMServer 的 FQDN 添加到 Intranet 区域(如果尚未添加)。
- 如果负载均衡器连接到 L7 层的 CAMServer,则在 CAMServer 上放置 SSL 证书,并在 L4 层进行连接。
