企业应用为敏感应用时,企业一般会禁止用户从互联网访问企业应用,且要求将业务应用拆分成应用前端和应用后端(API 服务),以实现 API 或服务级别的权限控制。此种场景下,由安全接入网关和 API 网关提供安全接入代理功能。
安全接入网关和 API 网关提供的安全接入代理功能主要体现在以下几点:
l 网络隐身:隐藏业务 IP,所有应用前端对外暴露一个虚拟地址(使用端口区分不同的应用前端)以减少资源暴露面。
l 用户和终端认证:联动身份引擎、环境感知代理对用户和终端进行认证,确保用户和终端的合法性。
l SSL 解密:用户加密访问应用,安全接入网关和 API 网关拦截到用户访问请求时, 能够解密 HTTPS 报文并读取报文中的信息,进而根据读取的信息判断用户请求是否合法。
此场景下的安全接入代理技术具体实现过程如下图所示。
1. 用户通过虚拟地址加密访问应用前端。
2. 安全接入网关接收到请求后,先解密 HTTPS 报文,然后检查报文中是否含有用户令牌,如果有,则继续后续步骤;如果没有,则将用户请求重定向到身份引擎进行用户认证。如果认证通过,则获取到用户令牌;如果认证失败,则中断用户请求。
3. 安全接入网关从请求报文中获取 DeviceID,并请求环境感知代理验证 DeviceID 的合法性,如果验证通过,则继续后续步骤;如果验证失败,则中断用户请求。
4. 安全接入网关向身份引擎申请应用令牌。
5. 安全接入网关根据“虚拟地址:端口”获取对应的应用前端地址,并将请求转发给应用前端。
6. 应用前端接收到请求后,先执行用户应用鉴权。如果鉴权通过,应用前端向 API网关转发用户的 API 访问请求,用户可以继续访问 API 服务;如果鉴权失败,则中断用户请求。
7. API 网关向身份引擎请求验证用户令牌、应用令牌的合法性。如果验证通过,则继续后续步骤;如果验证失败,则中断用户请求。
8. API 网关将用户的 API 访问请求转发到应用后端,由应用后端执行用户 API 鉴权, 如果鉴权通过,则响应用户请求。
非敏感应用场景
企业应用为非敏感应用时,企业一般允许用户从互联网访问企业应用,存在大量 移动办公场景,且没有 API 或服务级别的细粒度控制需求,因此无需进行应用拆分。 此种场景下,由 SDP 网关提供安全接入代理功能。
SDP 网关提供的安全接入代理功能主要体现在以下几点:
l 网络隐身:隐藏业务 IP,所有应用对外暴露一个虚拟地址(使用端口区分不同的应用)以减少资源暴露面,且必须通过认证的客户端才能连接 SDP 网关,屏蔽绝大多数非法用户的网络攻击。
l 预认证:SDP 网关要求用户在访问企业应用前,必须提前进行认证以确保用户合法性。
l 预授权:根据用户不同的职能及工作需求,依据最小化权限原则,在用户接入前, SDP 网关可授予此用户完成工作所需的最小访问权限。
l SSL 解密:用户加密访问应用,SDP 网关拦截到用户访问请求时,能够解密HTTPS 报文并读取报文中的信息,进而根据读取的信息判断用户请求是否合法。
此场景下的安全接入代理技术具体实现过程如下图所示。
1. 用户向 SDP 控制器发送 SPA(Single Packet Authorization,单包授权)认证请 求,SDP 控制器收到请求后向身份引擎请求认证。如果认证通过,则继续后续步骤;如果验证失败,则中断用户请求。
2. SDP 控制器依据最小化权限原则,向客户端、SDP 网关下发“用户源 IP:目的端口”,表示只对特定的源地址用户放开特定的业务端口。
3. 用户向 SDP 控制器发送用户认证请求,SDP 控制器收到请求后向身份引擎请求认证。如果认证通过,则继续后续步骤;如果认证失败,则中断用户请求。
4. 用户通过虚拟地址加密访问应用服务器,SDP 网关拦截到请求后,解密 HTTPS 报文,判断是否是特定的源地址用户访问特定的业务端口,如果是,则继续后续步骤;如果不是,则中断用户请求。
5. SDP 网关向身份引擎请求应用鉴权,如果鉴权通过,则继续后续步骤;如果鉴权失败,则中断用户请求。
6. SDP 网关根据“访问虚拟地址+端口”获取对应的应用地址,并将请求转发给应用。