本帖最后由 杨童 于 2024-8-10 23:55 编辑
本文核心思想:介绍零信任本地不存放用户信息(未导入用户允许登录)场景下,用户认证、资源授权方案的原理和具体配置
场景举例: 场景1:客户当前有独立的认证平台(如cas、oauth、http(s)服务器),认证平台内部有组织架构和用户信息,但是认证服务器没有对外提供ldap接口,客户侧也没有ad域、ldap等类型的用户目录服务器,无法将用户信息导入到零信任,但是还是想使用认证服务器的账户信息登录零信任,同时实现基于组织架构或角色的权限划分。
场景2:客户当前有认证平台和用户目录服务器,但是因为敏感信息等原因,客户不愿意把用户身份信息同步存放到零信任,但是还是想使用认证服务器的账户信息登录零信任,同时实现基于组织架构或角色的权限划分。
方案基本逻辑介绍: 零信任本身提供了名为未导入用户登录的功能,如下图
该功能的作用:在使用外部认证服务器认证时,零信任会将当前认证的帐号拿出来,在与认证服务器关联的用户目录中查询该用户是否存在,如果不存在,则根据配置选择禁止或允许登录;还可以通过认证时解析组织架构或角色信息实现精细化授权
举个例子:当前张三使用http(s)认证方式登录零信任,http(s)认证关联的用户目录名为自定义 而自定义目录中没有张三的帐号 目录中设置了未导入用户禁止登录 此时张三登录就会提示帐号未导入禁止登录
此时修改成未导入允许登录,张三就可以正常登录了
以上仅对基本功能作了说明,下边会介绍详细的功能和配置逻辑
方案配置要点讲解: 1、只有自定义用户目录支持未导入的用户根据组织架构做资源授权,其他的比如ldap、ad域、企业微信等等,都只能支持未导入的用户使用默认授权和默认策略,如下图
2、在允许登录中有两个配置,"使用默认授权和默认策略","根据认证时解析的组织架构和角色信息获取授权和策略"
2.1、使用默认授权和默认策略:字面意思,所有未导入的用户允许登录后,资源权限根据默认配置来 2.2、根据认证时解析的组织架构和角色信息获取授权和策略:未导入的用户在登录时需要携带组织架构信息,零信任根据认证报文中携带的组织架构信息给用户分组授权,具体说明如下: 在外部认证服务器中(企业微信、钉钉等部分认证服务器除外,注意提前确认是否支持),响应参数中可以配置组织架构字段,如下图,https、oauth、cas、ldap、ad域的页面示例,所谓的登录时需要携带的组织架构信息就在这些地方体现
ad和ldap默认自带组织架构字段(当然也要具体看,有些反人类开发会不按套路出牌) 而http、oauth、cas的自定义程度较高,虽然协议是标准的,但是是否会回复组织架构字段该需要单独确认,可以根据认证服务器厂商提供的接口文档确认,如果默认不带组织架构字段,则需要沟通由认证服务器厂商开发修改
结合以上,以https认证举例说明认证时解析的组织架构的工作逻辑,流程图如下,其他认证也是一样逻辑,零信任从认证服务器拿到组织架构字段再在本地做映射和登记
完整配置举例(以https认证方式举例):
先创建自定义用户目录
设置未导入用户允许登录,并根据认证数据解析字段授权
给/sangfor/test组织授权一个资源
提前建立角色,并给角色设置好授权资源和生效组织架构
配置认证服务器,设置组织架构字段映射,关联自定义用户目录
配置一个用户策略,设置对应组
用户登录后具有对应组织架构和角色的授权
在线用户显示符合预期 |