集成 Windows 身份验证概述
集成 Windows 身份验证 (IWA) 是一种当 IIS 和用户登录到同一域时自动向 IIS 提供用户身份验证信息的机制。当您使用 ASP.NET C# 创建站点时,您可以获得用户身份验证确定和经过身份验证的用户信息。
这允许用户访问 IIS 托管(或链接)的 Web 应用程序,而无需额外的登录操作,并支持与其他应用程序服务器的 SSO 集成。
*如果您未参与同一域或未经身份验证的用户访问 IIS 页面,则会显示登录拨号盘,如果您未正确进行身份验证,则会出现 HTTP 错误 401.1 – 未经授权。
SSO(单点登录)流程
Chat&Messenger On-Premise 的 Ultimate 计划允许通过集成 Windows 身份验证进行 SSO。 SSO流程如下。
- 客户端首先访问集成Windows认证页面/cam-iissso
- /cam-iissso 页面使用 ASP.NET 来确定它是否经过身份验证并链接到 CAMServer。
- CAMServer 执行 LDAP 搜索以确认其是常规 AD 用户,生成 ssoToken(30 字节或更多字节的唯一随机值)和用于访问 CAMServer 的 URL,并请求重定向。
- 访问 CAMServer 并使用 ssoToken 进行身份验证。如果身份验证成功,将分配用于 API 访问的会话 ID。
实现 SSO 的要求
安装IIS
从服务器角色安装 IIS。
安装 IIS 时选中“Windows 身份验证”选项。
完成 IIS 角色安装后,分别安装 ISAPI 筛选器和 ISAPI 扩展。
安装 ASP.NET Core 托管捆绑包
ASP.NET Core 托管捆绑包 请安装。
安装后,重新启动 IIS 并确保处理程序映射中存在 AspNetCoreModuleV2。
添加应用程序 (cam-iissso)
下载 SSO 模块并将其复制到 C:\inetpub\wwwroot\cam-iissso https://chat-messenger.com/dl/fdd94dd-022_f2aaac/cam-iissso.zip 将 cam-iissso 应用程序添加到默认网站别名 cam-iissso 物理路径 C:\inetpub\wwwroot\cam-iissso
启用 Windows 身份验证
右键单击“Windows 身份验证”并选择“启用”。
设置互联网选项
将IIS提供的站点添加到内网区域
选择“Internet 选项”,单击“安全”选项卡,选择“本地 Intranet” 单击“站点”按钮,选择“高级设置”,然后添加站点 URL
检查自动登录
单击“自定义级别”,然后在“用户身份验证”→“登录”下,确保选中“在内网区域自动登录”。
LDAP 设置
使用 IIS 执行单点登录时,LDAP 设置(LDAPUrl、LDAPBaseDN、执行代理身份验证的 AD 用户)是必需的。
HTTP代理连接环境下不可用
请注意,SSO 不能在 HTTP 代理连接环境中使用。