摘要:由华为技术大咖VS派拉软件CTO为大家详解云原生架构下的身份管理平台,构建云安全数字身份入口。

本文分享自华为云社区《DTSE Tech Talk | 第4期:云原生架构下的数字身份治理实践》,作者: 华为云社区精选。

DTSE Tech Talk是华为云开发者联盟推出的技术公开课,解读云上前沿技术,畅聊开发应用实践。专家团队授课,答疑解惑,助力开发者使用华为云开放能力进行应用构建、技术创新。

在本期《身份应用云上技术架构实践》的主题分享中,华为技术大咖VS派拉软件CTO,带来云原生架构下的身份管理平台,为企业、机构、开发者构建云安全数字身份入口,赋能用户全场景下的数字身份治理与链接服务。

从自动化发布、云上运维和安全,解析上云架构实践

上图为身份管理平台的架构图,平台在架构方面大规模使用华为云云原生组件,以及网络、安全、k8s平台、中间件等产品。通过实践应用云原生产品,企业仅需关注业务即可,无需关注产品本身。为加速产品迭代,平台底层由华为云提供专业的服务,如容器镜像服务、云数据库MySQL、分布式缓存服务等。

在开发过程中,派拉采用基于Spring Cloud的微服务体系进行架构,用户的访问首先会经过华为云组件保障流量的安全和负载均衡,并经过K8s的Ingress组件后进入到服务空间,在微服务网关Spring Cloud Gateway组件对接用户的访问进行验证并分发到具体的业务微服务中。微服务网关作为唯一对外暴露的服务,也是唯一一个有Session状态的服务,其他都为无状态服务。对于微服务的治理全面采用Spring Cloud体系进行统一管理,包括Nacos作为微服务注册中心和配置中心,Spring Boot Admin对微服务进行监控,Hystrix做降级和熔断及故障隔离,XXL-Job作为分布式任务管理,还有自研的ParaPKI服务管理证书和密钥。

在云上自动化发布实践方面,采用云下开发测试,云上验收发布模式进行产品迭代的方式。产品发布过程中全面拥抱DevOps,并融入零信任安全理念建立DevSecOps开发模式。利用自研的独立pki服务,可以控制每一个用户的后台访问权限时间。而且在整个身份安全保护开发运维的过程中,以及各种工具的使用上,派拉将安全一直贯穿整个研发体系。

云下产品开发和测试环境运行IDC机房中,利用零信任产品,开发和测试人员从办公网或家庭网能安全的接入开发测试环境,所有的代码提交都通过流水线自动化编译打包上传到Nexus和Harbor中,再通过自动化发布能力在开发和测试环境中K8s上进行版本发布,通过测试后的产品版本根据流程触发提交镜像到华为云容器管理组件。保证从代码提交后打包的制品在各个环境下的一致性,减少质量问题逃逸。另外对于K8s、微服务、中间件的管理平台的认证和操作的安全性是一个很大的挑战,我们通过Nginx从网络上隔离运维和开发人员直接访问管理平台,所有人必须通过mTLS才能连接管理平台,并通过ParaPKI为运维开发人员分配合适权限的个人证书,从身份、权限、时效性来保护管理平台的操作。

由于网络边界的消失,对于传统从内网网络边界的安全访问模型,已经无法适应云原生时代,在云上运维架构和安全实践中,派拉基于零信任理念,通过先认证后链接的方式,保障端到服务、端到端、服务到服务的全链路网络安全。实现全面启用mTLS,凡是网络传输的数据一律加密,通过零信任网关代理所有对外服务,基于沙箱技术保护客户端自身安全,最终完成整合全链路网络、数据、身份及权限的安全一体化方案。最终保证从开发阶段代码安全、前后端调试安全、到产品运维安全,最后到产品发布服务内部调用方面的一个全面防护。

在实践应审尽审理念方面,派拉通过日志组件审计所有通过网关的用户访问数据,并存储到ES中,结合大数据和AI的能力对用户的所有访问行为进行分析,结合用户的权限策略来持续的控制用户行为风险,及时发现风险并启用二次强认证来缓解风险。另外,派拉开发了独立的日志审计服务,完全自定义化的配置客户实际需要的日志查询和报表分析的业务。

上云业务实践的4个关键点

多租户能力是SaaS服务的基础能力,通过多租户用一套资源为多个客户提供云上服务,进而发挥资源的重复利用产生效率。派拉从域名开始进行租户隔离,租户访问进入服务开始对Redis、elastic、MySQL、对象存储全域的多租户隔离,最大程度保证由租户产生的数据所有权归于租户。未来,派拉与华为云将一起去推动多租户开源组件在开源社区上的贡献。

接下来,准备进行更细粒度的多租户隔离能力,根据租户体量和优先级来决定租户对于资源占用量的隔离,从网络带宽、容器计算资源到数据库存储等中间件的优先响应,都可以基于租户的优先级进行隔离和分配,不仅如此还可以对关键租户提高更加高的体验。

作为一款SaaS化的身份管理产品,充分使用了缓存、队列、事件机制保障强大的高可用高并发能力,管理所有租户的用户数据,是所有用户的第一入口。

在大量的用户注册请求进入服务后,通过MQ队列机制进行排队消费,达到削峰的效果。用户注册完成后同样通过队列机制调用消息通知服务来降低通用业务服务的压力,保障各个微服务的业务处理能力。

用户注册完成入库后通过Maxwell组件监听数据库的binlog文件,对新创建的用户推送到Redis缓存和ES中,从而为更加高并发要求登录业务提供保障。

在安全架构方面,利用原子化微服务架构进行设计,通过基于身份和公钥技术设计的工作负载安全保障能力,并结合微服务的边车模式,在不干扰业务代码的情况下把安全能力通过Java agent技术加载到容器服务中,即使单个服务由于未知漏洞被黑客攻破后,也无法横向移动到其他并行运行的服务,最终控制威胁最小化。

用户的访问首先会经过Gateway对用户的身份和权限进行校验,合法的用户会被颁发一个身份Token,这个Token会附加到Http Header中透传到后续的服务中,每个服务接受到上一个服务的请求时,必须经过两层认证访问,第一基于mTLS技术对请求主体的设备或服务的身份合法性校验,第二从http请求头中的Token来对访问者的身份和权限校验;并持续在调用链路中的每个服务中都会进行校验,保障了全链路的身份和数据安全。

统一单点登录,用户只需登录一次即可访问多个业务系统无需重复登录,虽然看似简单的功能其内部逻辑极其复杂,从如何安全验证用户凭据,保障用户身份不被冒用,到用户在多个系统游走过程中,如何把合法身份和权限信息在多个业务系统中安全传递。

结合产品可支持的多种认证方式和多种认证协议,以身份管理系统为IDP为各个业务系统集成完成单点授权和认证,也支持身份管理系统为SP通过认证代理到其他第三方的身份认证中心IDP去认证,实现多认证中互信能力。

当用户登录平台时,平台会记录用户的登录信息,根据用户行为进行持续风险识别,结合不同的认证方式在不同场景或风险级别调用不同强度的认证能力。

统一的身份治理更加的复杂,不仅涉及到各种身份同步和权限治理的技术,还需要与客户各种业务系统中的实际业务相结合,制定身份和权限治理的指导原则。最终才能做到在用户只登录一次后,完全无障碍的在各个业务系统中安全可靠的处理其业务。

相关链接地址:

应用开发文档:https://support.developer.huaweicloud.com/doc/zh-cn_topic_0000001321416345-0000001321416345

参考示例代码:https://gitee.com/HuaweiCloudDeveloper

问题咨询和专家服务预约(需注册华为云账号):https://support.developer.huaweicloud.com/feedback/?ticket=ST-5385866-mPu9vjwIeAGISrz1rXBAdwt7-sso

点击关注,第一时间了解华为云新鲜技术~

DTSE Tech Talk | 云原生架构下的数字身份治理实践的更多相关文章

  1. 新书《OpenShift云原生架构:原理与实践》第一章第三节:企业级PaaS平台OpenShift

    近十年来,信息技术领域在经历一场技术大变革,这场变革正将我们由传统IT架构及其所支撑的臃肿应用系统时代,迁移至云原生架构及其所支撑的敏捷应用系统时代.在这场变革中,新技术的出现.更新和淘汰之迅速,以及 ...

  2. .NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记

    目录 什么是软件架构 软件架构的基本思路 单体向分布式演进.云原生.技术中台 1.1 什么是软件架构 1.1.1 什么是架构? Software architecture = {Elements, F ...

  3. Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT SDK 配置详解

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  4. Sentry(v20.12.1) K8S 云原生架构探索, SENTRY FOR JAVASCRIPT 手动捕获事件基本用法

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  5. Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT Source Maps 详解

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  6. Sentry(v20.12.1) K8S 云原生架构探索,1分钟上手 JavaScript 性能监控

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  7. Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之管理 Transactions

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  8. Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之采样 Transactions

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  9. Sentry(v20.12.1) K8S 云原生架构探索,JavaScript Enriching Events(丰富事件信息)

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  10. API 管理在云原生场景下的机遇与挑战

    作者 | 张添翼 来源 | 尔达Erda公众号 ​ 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...

随机推荐

  1. 14. 从零开始编写一个wmproxy(代理,内网穿透等), HTTP文件服务器的实现过程及参数

    用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP中的压缩gzip,deflate,brotli算法 项目 ++wmproxy++ gite: https://gitee.com/ ...

  2. vue打包部署遇到的问题

    网站上线中遇到的问题(跨域,404,空白页解决方案) 因为本人是后端开发工程师,对前端开发不了解,踩了很多坑,所以将踩过的坑分享出来,以供参考 网站地址:这里 这段时间将项目部署到服务器中引发了几个问 ...

  3. CSP 初赛复习

    想要做一些不需要思考也算不得摆烂的事,但发现很难找到符合上述要求的学习内容. 突然想到还剩两天就 CSP 初赛了.虽然在 LN 想过不了初赛纯属搞笑,但为了不让自己的分数太难看还是简单复习一下. 没有 ...

  4. 云端golang开发,无需本地配置,能上网就能开发和运行

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 需求 学习golang的时候,需要一个IDE,还需要一 ...

  5. 搞懂Event Loop

    本文关键: V8是单线程的 任务队列排队执行 抽出io命令抽出到evenloop线程,消息线程,区别与主线程.(同步和异步) 微任务和宏任务执行顺序 重绘和回流 以上流程无限循环 可以这样理解,一个人 ...

  6. c#中建造者设计模式详解

    基础介绍:   将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.   说白了就是将一个复杂的对象拆分成一个一个零件,然后按照既定顺序和规则进行组装,最终形成这个相对复杂的对象 ...

  7. Net 高级调试之四:Windbg 动态调试

    一.简介 今天是<Net 高级调试>的第四篇文章.到今天为止,也有三篇文章了,对 Windbg 也有初步的认识了,当然,一个工具流畅.熟练的使用,对于我们调试 Net 程序是至关重要的.在 ...

  8. SSL证书链及使用

    什么是证书链 证书链简单来说是域名钥证书.CA公钥.根证书形成的一个颁发链条,属于公钥的一部分. 更白话一点,就是证书链文件包含一系列CA机构公钥的证书. 证书链格式 一般证书链格式是.chain,证 ...

  9. 在NestJS应用程序中使用 Unleash 实现功能切换的指南

    前言 近年来,软件开发行业迅速发展,功能开关(Feature Toggle)成为了一种常见的开发实践.通过功能开关,可以在运行时动态地启用或禁用应用程序的特定功能,以提供更灵活的软件交付和配置管理.对 ...

  10. keepass