自动化运维平台中的统一认证接入与单点登录实现

简介:

前言:

       在运维开发的众多系统中,怎么能更好的管理用户账号和密码,以及做到统一的brac权限角色配置系统。


      以前记得最初做运维开发项目的时候,每个app都是一套用户密码,顶多做了一个加密流转,申请接入的时候,需要领导的邮件审批,后期改成ldap在openldap做认证了。 但是现在不这么搞了。



    更多的运维研发的内容,请移步到我的个人博客, xiaorui.cc  !


原因呢?   我相信大家公司肯定都有认证的接口,先说下常见的认证接口有那两种我就见过这两种,希望朋友补充):

       第一种,公司的各个平台通过ldap连入windows ad目录,或者是连入特定的db。  当时这样很不安全,如果我是开发者的话,用户输入用户名和密码的时候,点击登录,我完全可以把账号密码给print出来。

       第二种,就是Passport的方案,算是统一认证,一般是oauth,但是oauth相对麻烦点。大家有时候,要登录论坛的时候,他会提示可以用qq,支付宝,人人的账号登录。  我现在的方案就是类似这种的方法,好!  下面说下,我对这个统一认证的接口使用。


       我自己也写过一个 统一认证平台接口,是基于cookie方式的,实现的方法相对简单,但是很有效,安全方面让安全部门测试过,在一定条件下,还是很安全的。在以前公司开发的多个平台也都接入了这个统一认证。


语言:python

框架:tornado

模块:requests,flask-admin,oauth2

组件:redis,mysql

前端:Bootstrap


对于python oauth2的方案,可以看 https://github.com/simplegeo/python-oauth2


1
2
3
4
1 、得到授权码code
2 、获取access token
3 、通过access token,获取OpenID
4 、通过access token及OpenID调用API,获取用户授权信息


这里的方案不是oauth2,因为oauth2更多的是给大批的第三方应用设计的,咱们这里只是做passport认证,用oauth2显得不是太合适。


wKiom1MJ_OzwY2rZAAGn7qOXNj8788.jpg

原文:http://rfyiamcool.blog.51cto.com/1030776/1362424


集群平台clusterops clusterops.xiaorui.cc,中心认证passport.xiaorui.cc为例,

       1.    判断用户是否登录,已经在passport登录的话,可以直接访问clusterops,如果没有登录的话,会转跳到 passprot.xiaorui.cc/redirect?urlto=clusterops.xiaorui.cc


       2.    当转跳到 passprot.xiaorui.cc/redirect?urlto=clusterops.xiaorui.cc的时候,会提示用你的域账户和密码登录,登录成功后,会再次转跳到 clusterops.xiaorui.cc/api?res=aqggzwnasdzo9kzwsxedclmcksduwe8sdf0d&Token=F3fQk1eTJWu2XbWHEzuXXJ0KoJeH6O


        3.    clusterops接收api接口的res和Token字段数据,用这两个字段以cookie的方式去访问passport.xiaorui.cc/getuserdata?accesstime=时间戳


        4.     统一认证端passport拿到了cookie在redis里面做对比,然后判断access时间,在5分钟之内,符合要求给他return 用户数据,如果不符合,就给他回一个错误数据。


        5.      clusterops解析了返回的json数据,把username及一些数据,放到session里面,这样用户就完成了认证及登录。

        6.      退出的话,可以选择该app,也可以选择清楚sso的单点登录的sesson标记。

wKioL1MMB-fAn7mjAAFYxGtjosw550.jpg


原文:http://rfyiamcool.blog.51cto.com/1030776/1362424

看这个流程图比较直观点,一般来说我们只是对于web应用做认证接入,认证后,在这个web应用的所有动作权限,都是在web应用本身做的。如果每个应用和连接都再次向认证系统去验证cookie、session,那就会有瓶颈,所以用saml使两个认证服务器做认证通信 !

wKiom1MKBFawza3gAAKCCa_2q3w738.jpg


上面说的只是统一认证方面的,下面再来说说单点登录


单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。


开源的sso,也有不少,我用过lemonldap这个websso方案,感觉还不错哈。

http://lemonldap-ng.org/documentation



SSO的好处:

wKioL1MJ-gbzwEIZAADTFJvdweI550.jpg

方便用户:从用户实际使用角度考虑

     用户使用应用系统时,能够一次登录,多次使用。用户不再需要每次输入用户名称和用户密码,也不需要牢记多套用户名称和用户密码。


方便管理员:从日常维护管理角度考虑

     系统管理员只需要维护一套统一的用户账号,方便、简单。相比之下,系统管理员以前需要管理很多套的用户账号。每一个应用系统就有一套用户账号,不仅给管理上带来不方便,而且,也容易出现管理漏洞,开发者也不知道用户的账号密码

简化应用系统开发:从应用扩展角度考虑

     开发新的应用系统时,可以直接使用单点登录平台的用户认证服务,简化开发流程。单点登录平台通过提供统一的认证平台,实现单点登录。因此,应用系统并不需要开发用户认证程序。



单点登录在这里就很好体现了,只要用户登录了passport统一认证,登录后平台会session标记,只要别的项目指向PassPort认证,那自然而然他们都可以登录了。


捎带角说下,我们一定要再开发一套针对统一认证passport的权限控制,不然每个应用都自己控制admin和guest的权限,这样该又乱套啦! 这段时间我也搞了一套权限管理接口,可以配套在统一认证接口上,权限控制的很细,一个页面,一个菜单,一个动作都可以控制。



欧了,这里是我自己对于运维平台的统计认证,sso单点登录,权限管理的理解。 我相信,我的这篇文章更加适合新手理解,当然肯定也有理解出问题的地方,请大神指正 !



 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1362424,如需转载请自行联系原作者



相关文章
|
3月前
|
监控 安全 UED
通过OAuth实现企业监控管理软件的安全认证流程
企业监控管理软件在当前信息时代中扮演着至关重要的角色,但随之而来的安全隐患也日益突出。为了保护用户数据和确保系统的安全性,采用OAuth(开放授权)协议是一种理想的选择。OAuth提供了一种安全而灵活的身份验证方式,适用于各种网络应用和服务。本文将深入探讨如何通过OAuth实现企业监控管理软件的安全认证流程,并通过代码示例演示关键步骤。
247 1
|
4月前
|
SQL 弹性计算 监控
构建多账号云环境的解决方案|多账号云上操作日志统一审计
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。企业在阿里云采用多账号的资源结构时,如何满对跨账号跨地域的云上操作日志进行统一归集留存和分析,是企业上云管云过程的必备环节。此次分享为您介绍如何使用操作审计产品进行中心化的审计,提升云上多账号操作的可控可见性,及时发现问题、响应问题,规避潜在风险。
251 0
|
4月前
|
运维 安全 测试技术
构建多账号云环境的解决方案|高效构建安全合规的新账号
随着企业将业务迁移上云,为了应对复杂的业务与组织关系,越来越多的企业会采用多账号来部署云环境。对于新业务上线,企业会先创建一个云账号来部署资源。通过控制台上的账号注册流程需要完成企业实名认证,这个流程周期较长。等新账号注册下来之后,企业还需要配置账号内的安全合规基线,开通相关云服务,配置网络等一系列动作,费时费力。「账号工厂」就是这样一个解决方案,帮助企业在多账号场景下高效便捷的创建受管控的安全合规云账号。
86 1
|
9月前
|
存储 前端开发 安全
强化用户体验与安全性:前端单点登录和统一认证的最佳实践与区别
互联网发展了这么多年,各种更新皆为了提供更好更安全的上网环境。同时为了提供更好的用户体验、减少用户反复输入用户名和密码的繁琐操作,并确保账户安全,前端领域中的单点登录(SSO)和统一认证(Unified Authentication)成为了重要概念。
强化用户体验与安全性:前端单点登录和统一认证的最佳实践与区别
|
4月前
|
运维 监控 安全
构建多账号云环境的解决方案|多账号配置统一合规审计
配置审计(Cloud Config)是提供了面向资源配置的审计服务,可以持续监控资源的配置变更,并在变更时自动触发合规评估,确保持续性合规。为了解决企业运维和安全人员业检查资源合规配置的效率难题,配置审计为客户提供了多账号的统一审计能力。用户可以在管理账号或者委派账号中统一设置合规基线并应用,从而可以实时查看企业下经过汇总的不合规资源。
63951 36
|
5月前
|
新零售 运维 安全
构建多账号云环境的解决方案|云防火墙企业多账号统一管理最佳实践
云防火墙通过与资源目录RD深度集成,可帮助企业将云上多个业务账号进行统一集中安全管控,大大提升运维效率。通过多账号统一管理能力,用户无需采购和运维多套云防火墙,仅需采购和运维一套,即可实现安全策略统一下发和防护效果统一分析审计等,更好满足企业网络安全集中化管控需求,并大大降低成本。
50302 6
|
6月前
|
存储 云安全 运维
构建多账号云环境的解决方案|云安全中心多账号统一安全运营
为解决安全管理人员对企业下属的多个云产品的安全运营效率问题,云安全中心威胁分析结合资源管理服务,为客户提供多账号管理统一安全运营方案。通过指定委派管理员,即可在控制台统一多账号安全运营工作,免除在多个账号间频繁登录登出的烦恼。 
528 0
|
9月前
|
运维 网络协议 大数据
一站式运维管家 ChengYing 主机接入原理解析
之前的文章中,我们已经为大家介绍了 ChengYing 的安装原理、产品包制作、产品线部署等内容,本篇将和大家介绍一个困扰许多开发者的内容——ChengYing 主机接入。帮助所有对 ChengYing 感兴趣的开发者更好地了解和使用一站式全自动化运维管家 ChengYing。
66 0
|
移动开发 安全 算法
mPaaS云平台运维系列之—移动网关常见问题
移动网关服务(Mobile Gateway Service,MGS)是mPaaS提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。本章主要介绍产品常见问题。
1235 0
mPaaS云平台运维系列之—移动网关常见问题
|
缓存 JSON 移动开发
mPaaS云平台运维系列之—移动网关产品介绍
移动网关服务(Mobile Gateway Service,MGS)是mPaaS提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。本章主要介绍产品基本概念。
1174 0
mPaaS云平台运维系列之—移动网关产品介绍