内容简介:随着智能移动终端的发展,企业移动化办公越来越普及,目前国内企业的主流移动化建设方向是轻应用化(终端)和微服务化(后端),而传统的企业统一认证服务(主要考虑Web端和少量桌面应用的认证)已经无法适应移动化时代下轻应用+微服务的快速发展需求,企业统一认证服务急需重新规划落地。移动化时代下的统一认证服务,除了传统PC办公平台的问题之外,还需要重点考虑轻应用+微服务架构下的认证,本文将基于品高云应用支撑平台(BingoFuse)的企业级统一认证服务,对上述问题展开讨论。存在的问题
随着智能移动终端的发展,企业移动化办公越来越普及,目前国内企业的主流移动化建设方向是轻应用化(终端)和微服务化(后端),而传统的企业统一认证服务(主要考虑Web端和少量桌面应用的认证)已经无法适应移动化时代下轻应用+微服务的快速发展需求,企业统一认证服务急需重新规划落地。
移动化时代下的统一认证服务,除了传统PC办公平台的问题之外,还需要重点考虑轻应用+微服务架构下的认证,本文将基于品高云应用支撑平台(BingoFuse)的企业级统一认证服务,对上述问题展开讨论。
存在的问题
统一认证服务,除了实现传统的单点登录之外,还需要解决以下几个重要问题:
双身份:用户与应用都需要身份认证
多终端:IOS,安卓,桌面,Web等多种类型终端下的身份认证
全链路:终端调用服务,服务再调用另一服务的身份认证
这是简单场景下统一认证服务解决的最基本的问题,在真实的企业场景下,这几个基本问题会衍生出更加复杂的问题,这里列举几个我们遇到的企业场景:
多网隔离架构
公私混合云架构
集团多企业架构
接下来我们从基本的问题开始,逐步分析在这几种企业场景下,统一认证服务会遇到的各种问题。
双身份、多终端、全链路
双身份
传统的认证只考虑用户身份认证,在微服务架构体系下应用数量剧增,应用间相互依赖授权的需求也大量出现,因此必须对应用进行身份认证。
这里的双身份就是指用户身份和应用身份,应用包括终端应用(App,轻应用)和服务端应用,在后边的讨论中,我们统一称为应用。
为了对应用进行认证和授权,我们还需要对应用进行管理,包括应用的注册和授权。
多终端
传统PC办公平台,最常见的是Web端的认证,少量桌面应用端的认证,基本没有考虑移动终端等其他终端类型。在轻应用化的体系下,各种类型的终端(Web,桌面,移动终端)的身份认证必须要被考虑在内。
全链路
在微服务化体系下,用户的一个业务操作就可能涉及微服务间的多次调用,在整个调用链路中,每次调用都需要考虑原始用户身份的传递和应用(服务)身份的变化的认证,如下:
多网隔离
在公安、政府这类对网络安全要求极高的行业中,内部的网络是一个多网隔离架构,多网络区域间存在如下特点:
有至少一个网络区域
多网络区域间只能单向通讯,且有协议(仅HTTP)和流量限制
多网络区域间用户和应用是统一管理的
在这种网络特性下,无法保证各个区域的应用接入同一个统一认证服务,那么应用在跨网调用时,该如何解决统一认证的问题?
可行的模式是:
在每个网络区域部署一个统一认证服务
各个网络区域的应用接入同个网络的统一认证服务
多个网络区域间的统一认证服务间连通互信
这种模式下,应用跨网调用认证就是多网络区域间的统一认证服务需要解决的问题:
跨网认证:网络区域1的应用,跨网调用网络区域2的应用的身份认证
统一认证服务解决这个问题后,跨网调用和同网调用对应用来说是一致的,这能大大简化应用开发的流程。
公私混合云
不少企业客户都希望在使用公有云SaaS化服务的同时,可以私有化保存管理自己的业务数据,这类需求推荐采用公私混合云架构,这种架构存在如下特点:
公有云是多租户模式
只有私有云能认证用户密码(纯公有云架构才会在公有云认证密码)
用户在两朵云之间是统一的,应用在两朵云之间是不统一的
公私混合的网络架构如下:
在公私混合的架构下,应用按如下模式部署:
公有云部署一个在线认证服务
每个租户部署自己的私有认证服务
每朵云内的应用,接入同一朵云内的认证服务
在公私混合部署的模式下,认证服务需要解决新的难题:
租户识别:用户和应用请求认证身份前,识别认证请求所属的租户
跨云认证:私有应用调用在线应用或在线应用调用私有应用的认证
跨云应用授权管理:在线应用对私有应用授权或私有应用对在线应用授权
集团多企业
而对于大型的集团企业来说,集团中往往包含多个子公司,各个子公司则是相对独立的企业,集团的特点如下:
多个子公司需要各自独立的企业内认证中心
多个子公司之间用户是统一管理的,应用是不统一管理的
集团多企业的架构,应用的部署模式如下:
各个企业间独立部署私有认证服务
各企业的应用接入自己私有的认证服务
在这种模式下,统一认证服务引入的新问题如下:
跨企单点登录:企业A用户张三在企业A的Web应用中登录后,打开企业B的Web应用的单点登录
跨企认证:企业A的应用调用其他企业的应用的认证
认证中心管理:集团增加一个子公司和减少一个子公司时,管理多认证中心的成员变化
跨企应用授权管理:企业A对集团内其他企业的应用授权
更加复杂的企业场景
除了前面提到的几种常见的衍生问题外,事实上我们还遇到过更加复杂的企业场景:
公私混合云模式下的集团企业联盟架构中,跨云跨企带来的复杂情景
私有云多网络模式下的企业联盟架构中,跨网跨企带来的复杂情景
这里我们不再深入讨论。
如何落地?
统一认证服务不仅要考虑本身需要解决的问题,还需要考虑如何在真实企业中落地。在多数企业中,企业内的认证体系大致分为如下几种模式:
企业内以一个或多个AD为认证中心,各个应用独立接入AD认证用户
企业内存在一个(甚至多个)单点登录服务,Web应用接入单点登录
企业内各集成系统独立登录和管理用户
对应这几种模式,统一认证中心落地需要解决如下挑战:
旧认证源对接:对接企业已有的认证源(如AD,旧用户数据库或已有统一用户接口等)
旧单点登录对接:已经接入旧单点登录服务的应用在新的统一认证服务中的单点登录
集成系统对接:大型集成系统快速接入统一认证
只有解决这几个挑战,才能实现统一认证服务的真正落地。
品高统一认证服务
品高统一认证服务,是目前BingoFuse平台中最重要最基础的组件服务之一,由品高软件自主研发,致力于构建一个真正的企业级统一认证中心,支持多种企业级功能。
OIDC+OAth2
支持标准化的OIDC+OAuth2协议的应用接入
用户+应用身份认证
多终端身份认证
支持企业级的应用预授权(兼容OAuth2标准的企业特性扩展)
支持全链路的用户身份传递和应用身份认证(兼容OAuth2标准的企业特性扩展)
跨网互信
品高统一认证服务支持跨网互信功能,支持多网隔离环境下的跨网调用认证,如下图:
在多网隔离的环境下:
支持对应用透明的跨网调用身份认证(标准OAuth2协议调用)
公私跨云
品高统一认证服务支持公私混合部署:
在公私混合部署中,包括如下功能:
支持多租户识别
支持不同租户分别使用私有认证和本地认证两种认证模式
支持对应用透明的跨云调用身份认证(标准OAuth2协议调用)
企业联盟
品高统一认证服务支持企业联盟模式:
在集团多企业的架构中:
支持跨企Web应用的单点登陆
支持企业联盟管理,在联盟内动态加入和剔除成员
支持对应用透明的跨企调用身份认证(标准OAuth2协议调用)
拓展定制
品高统一认证服务具备良好的扩展性和定制能力,内置了对接多种常见认证源:
支持数据库,LDAP,Window验证等多种认证源
支持扩展第三方认证源(如API接口)接入
支持企业特定登陆逻辑和业务的定制开发
统一认证服务的价值
品高云企业级的统一认证服务,能为企业解决应用身份与用户身份的统一认证问题,为大型集成系统的微服务化和移动终端轻应用化提供安全可靠的用户身份认证和用户身份传递,降低各个相互依赖的服务之间的复杂度的同时,也降低大型应用拆分和前后端分离的难度,从而为企业应用的轻应用化和微服务化提供可靠的支撑。
写在最后
如何进行统一认证,是企业轻应用化和微服务化下遇到的第一个难题,然而,解决这个问题之后,很快轻应用和微服务将面临第二个难题:统一用户。
企业用户数据的现状是怎么样的?存在什么难关?用户数据在微服务架构下会有哪些使用场景?应用和服务如何使用用户数据?这些问题,我们将在统一用户的文章中讨论,敬请期待。
▼
关于 BingoFuse
品高云应用支撑平台(BingoFuse)是结合了云计算和移动互联等技术的企业级应用全生命周期构建和交付平台,为企业应用的移动化、微服务化和容器化提供全方位的基础服务、开发运维 工具 和集成管理。
基于 BingoFuse,企业能够从传统相互孤立、周期过长的应用交付形态升级为快速适应业务变化、开放共享的新一代交付模式,有效地缩短实施周期、降低实施成本和改进用户体验等,从而为企业应用整体上云提供有力支撑。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 微服务统一认证与授权的 Go 语言实现
- 微服务统一认证与授权的 Go 语言实现(上)
- OpenStack搭建企业私有云 一:认证服务
- CentOS部署OpenStack过程-基础和认证服务
- hadoop开启Service Level Authorization 服务级认证-SIMPLE认证-过程中遇到的坑
- 通过 Istio 重新实现微服务 (五):认证和授权
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法分析-有效的学习方法(影印版)
Jeffrey J.McConnell / 高等教育出版社 / 2003-03-01 / 28.0
本书主要目标是提高读者关于算法对程序效率的影响等问题的认知水平,并培养读者分析程序中的算法所必需的技巧。各章材料以激发读者有效的、协同的学习方法的形式讲述。通过全面的论述和完整的数学推导,本书帮助读者最大限度地理解基本概念。 本书内容包括促使学生参与其中的大量程序设计课题。书中所有算法以伪码形式给出,使得具备条件表达式、循环与递归方面知识的读者均易于理解。本书以简洁的写作风格向读者介绍了兼具......一起来看看 《算法分析-有效的学习方法(影印版)》 这本书的介绍吧!