当前位置: 首页 > 科技观察

自动化运维平台统一认证接入和SSO单点登录

时间:2023-03-23 10:44:40 科技观察

前言:在工作中,开发了很多自动化运维平台,可以更好的提高效率,杜绝人为错误。有朋友问我如何管理登录平台的账号密码。听说这个问题的时候,我说直接存起来,但是说完之后觉得挺不合适的,至少和我现在的解决方案不太一样。以前做运维开发项目的时候,每个APP都有一套用户密码,顶多做个加密传输。申请访问时,需要领导邮箱批准。后来在openldap中改为ldap进行认证。但是不是现在。为什么?我相信每个公司都必须有一个认证接口。先说一下常见的两种认证接口(这两种我都看过,希望朋友们补充):公司各个平台都是通过ldap连接到windowsad目录,或者连接到特定的db。那时候,很不安全。如果我是开发者,当用户输入用户名和密码,点击登录时,我可以打印出账号密码。Passport方案,这个是统一认证,一般是oauth,但是oauth比较麻烦。有时候你要登录论坛,他会提示你用QQ、支付宝、人人网的账号登录。我现在的计划是类似这样的方法,好!接下来,我使用这个统一的认证接口。我也写了一个统一的认证平台接口,是基于cookie方式的。实现方法比较简单,但是很有效。在安全方面,安全部门已经测试过了。在一定条件下,还是很安全的。该公司过去开发的多个平台也已接入此统一认证。语言:python框架:tornado模块:requests,flask-admin,oauth2组件:redis,mysql前端:Bootstrappythonoauth2方案,可以看https://github.com/simplegeo/python-oauth2获取授权codecode获取accesstoken通过accesstoken获取OpenID,通过accesstoken和OpenID调用API获取用户授权信息。这里的解决方案不是oauth2,因为oauth2更多是为大量的第三方应用而设计的。我们这里只是做护照认证,用oauth2不是很合适。.集群平台clusteropsclusterops.xiaorui.cc,中心认证passport.xiaorui.cc为例:判断用户是否登录,如果已经用passport登录,可以直接访问clusterops。如果没有登录,会被重定向到passprot.xiaorui.cc/redirect?urlto=clusterops.xiaorui.cc重定向到passprot.xiaorui.cc/redirect时?当urlto=clusterops.xiaoui.c??c时,会提示你使用域账号和密码登录。登录成功后会跳转到clustoreops.xiaoui.c??c/api?res=aqggzwnasdzo9kzwsxedclmcksduwe8sdf0d&Token=F3fQk1eTJWu2XbWHEzuXXJ0KoJeH6O接收res和Token字段数据,使用这两个字段访问passport.xiaorui.cc/getuserdata?accesstime=timestamp中cookie的形式,如果符合要求就返回用户数据给他,如果不符合要求就返回错误数据给他。clusterops解析返回的json数据,将用户名和一些数据放入session中,让用户完成认证登录。看这个流程图更直观。一般来说,我们只对web应用做鉴权访问。身份验证后,此Web应用程序中的所有操作权限都在Web应用程序本身中完成。如果每个应用程序和连接都必须再次向认证系统验证cookie和session,就会出现瓶颈,所以使用saml让两个认证服务器做认证通信!以上只是统一认证,下面说说单点登录。单点登录SSO(SingleSign-On)是身份管理的一部分。SSO一个比较通俗的定义是:SSO是指同一用户在同一台??服务器上的不同应用程序中访问受保护的资源。他只需要登录一次,即在一个应用中通过安全验证后,就可以在其他应用中访问受保护的资源。资源,不再需要重新登录认证。也有很多开源的sso。用过lemonldap的websso解决方案,感觉还不错。SSO的好处:方便用户:用户在使用应用系统时从实际使用的角度出发,可以一次登录,多次使用。用户不再需要每次都输入用户名和用户密码,也不需要牢记多组用户名和用户密码。方便管理员:从日常维护管理的角度,系统管理员只需要维护一套统一的用户账号,方便简单。相比之下,系统管理员过去常常管理多组用户帐户。每个应用系统都有一套用户账号,不仅给管理带来不便,而且容易出现管理漏洞,开发者不知道用户账号密码简化应用系统开发:从应用扩展系统的角度考虑开发新的应用,可以直接使用单点登录平台的用户认证服务,简化开发流程。单点登录平台通过提供统一的认证平台实现单点登录。因此,应用系统无需开发用户认证程序。单点登录在这里得到了很好的体现。用户只要登录Passport统一认证,登录后平台会标记session,其他项只要指向PassPort认证,就可以自然登录。另外我们必须为统一认证passport再开发一套权限控制,否则每个应用自己控制admin和guest的权限,会显得杂乱无章。这段时间我也配置了一套权限管理接口,可以配合统一认证接口使用。权限控制很详细,可以控制一个页面,一个菜单,一个动作。哦,这里是我自己对运维平台统计认证、sso单点登录、权限管理的理解。相信我的这篇文章更适合新手理解。当然,在理解上肯定存在一些问题。请纠正我!原文链接:http://rfyiamcool.blog.51cto.com/1030776/1362424