首页 > 其他分享 >面试官:说说单点登录都是怎么实现的?

面试官:说说单点登录都是怎么实现的?

时间:2024-07-26 22:29:01浏览次数:15  
标签:面试官 单点 登录 魔法 用户 豆瓣 OIDC

 在数字化时代,用户账户安全和便捷体验成为了众多互联网产品设计的重要考量。

       而“单点登录”(Single Sign-On, SSO)作为提升用户体验、简化登录流程的关键技术,已经成为各类企业应用的标准配置。

       那么,当你在面试现场被问到‘单点登录是如何实现的?’,你是否已经胸有成竹?

u=2915442786,1302359599&fm=253&fmt=auto&app=138&f=JPEG.webp

1、什么是单点登录?

       很早期的公司,一家公司可能只有一个服务,用户在使用这个公司的产品时,只要一次登录就可以了。

       慢慢地,随着公司的业务扩展,服务开始变多了。每个服务都要进行注册登录,退出的时候又要一个个退出,这样的用户体验很不好。

       可以想象一下,上豆瓣要登录豆瓣FM、豆瓣读书、豆瓣电影、豆瓣日记......真的会让人崩溃。

       这个时候,就有人提出了单点登录的想法,它允许用户使用一组身份凭证登录一次,就可以访问所有相互信任的多个应用程序或系统。

       这样,不仅能极大提升用户体验,降低忘记密码和登录疲劳等问题,还有助于提高整体系统的安全性。因为在单一认证中心下,用户的身份管理更加集中和可控,可以更容易地实现多层次的安全策略,包括双因素认证、动态口令、设备绑定等多种安全措施。

       那么,单点登录又是怎么实现的呢?

       接下来,就让我们一起揭开单点登录的神秘面纱,探索它背后的多种实现方案。

ab3cfe70df63da58.png

2、OAuth2.0的魔法棒

              OAuth2.0虽不是直接针对SSO设计,但它通过授权码流转,如同施展了一个无形的魔法,让用户在授权第三方应用访问自身数据的同时,也实现了某种程度的单点登录效果。

       具体来说,用户向授权服务器请求一个令牌,这个令牌便成为了用户身份在各应用间的通行证,简化了登录流程。

       就像哈利·波特手中的魔杖,轻轻一点,就打开了各个魔法房间的大门。

20191123231151293.png

3、CAS的中央认证咒语

       CAS(Central Authentication Service)则是专门为SSO打造的一款开源神器。

       在它的魔法阵中,用户仅需在一处——中央认证服务器登录,然后,借助CAS发放的票证(Ticket),即可跨越各种关联系统,实现一键登录。

       就如同霍格沃茨的传送门,一踏进门,就能瞬间抵达校园内的任何角落。

15765672123182.jpg

4、OIDC的时空穿越之术

       OIDC(OpenID Connect)则是OAuth2.0家族中的升级版魔法师,它在原有授权功能基础上增添了身份验证维度,使得用户通过OIDC身份提供商的身份验证后,能够在支持OIDC的不同应用之间畅通无阻。

       就如同时间转换器,登录一次,即可随时穿越到支持OIDC的任一线上空间。

OIDC.png

5、SAML的身份声明符咒

       最后登场的是SAML(Security Assertion Markup Language)。这位魔法师擅长使用XML文书形式传输身份声明,用户在身份提供方登录后,会收到一份魔法信件——SAML断言,凭借这份断言,可以解锁众多服务提供商的入口。

       就像巫师们互相发送的身份证明信函,有了它,无论走到哪个魔法学院,都能被迅速识别并接纳。

image.png

6、结尾

       当我们明白了这四位魔法师各自的神通之后,面对具体的业务场景,该如何做出最优选择呢?这就涉及到了安全性、易用性、集成难易度以及成本等多个考量因素。

       比如,如果你身处一家需要高度安全和严格控制的大型组织,可能会倾向于选择SAML,因为它提供了强大的安全性和严格的控制手段。而在追求灵活快捷的互联网产品开发中,OAuth2.0与OIDC可能是更好的搭档,它们能够方便地与其他第三方服务集成,并优化用户体验。

       亲爱的读者朋友,你在实际项目中是否也曾面临过选择单点登录技术的困境?面对不同业务需求,又是如何权衡利弊、因地制宜来选用最适合的方案呢?快在留言区分享你的实战心得,我们一同探讨,让这场关于单点登录的“魔法”对话持续发酵吧!

标签:面试官,单点,登录,魔法,用户,豆瓣,OIDC
From: https://blog.csdn.net/qq_17105113/article/details/140668325

相关文章

  • 网关登录校验
    网关登录校验首先写一个demopackagecom.hmall.gateway.filter;importcom.hmall.gateway.config.AuthProperties;importcom.hmall.gateway.util.JwtTool;importlombok.RequiredArgsConstructor;importlombok.extern.slf4j.Slf4j;importorg.springframework.cl......
  • 一条命令搞定WPS免登录,轻松省时又省力!
    文章目录......
  • 无密码登录
    需求机器A(客户端)使用SSH免密连接机器B(服务端)客户端配置进入用户目录的.ssh目录,生成公钥和私钥ssh-keygen-trsa在执行的过程中,一路回车,不要修改任何东西。全部默认将生成的公钥分发到服务端方法一:使用ssh-copy-id命令,将公钥添加到服务端的authorized_keys文......
  • Harmony鸿蒙实战开发-记事本「登录保护」【源码在文末】
    Harmony鸿蒙实战开发-记事本「登录保护」【源码在文末】文章目录Harmony鸿蒙实战开发-记事本「登录保护」【源码在文末】一、运行演示1、注册2、登录3、主页4、编写二、部分代码三、源码运行工具:DevEcoStudio一、运行演示1、注册2、登录3、主页4、编写......
  • Easyconnect登录提示:拉起虚拟网卡失败 解决办法
    原文链接:https://www.cnblogs.com/runningwind/p/17532438.html用户使用easyconnect登录SSLVPN后提示:拉起虚拟网卡失败,请确保虚拟网卡已经安装在系统上并处于启用状态 设备管理器查看虚拟网卡一直有感叹号 尝试更新网卡驱动及启用禁用虚拟网卡,不行尝试使用SSLVPN诊断修......
  • 面试官:聊聊你对分库分表的理解?
    在MySQL集群架构中有两种主流的集群实现,一种是读写分离,而另外一种则是数据分片。所谓的数据分片其实就是今天要聊的分库分表技术。分库分表技术不但是日常工作中用于解决数据库中的数据量会急剧增长,解决单库单表性能瓶颈的一种方案,更是面试中的高频知识点。在阿里巴巴的《Java......
  • 使用 Scrapy 进行身份验证并登录用户会话的证书?
    在Scrapy文档中,有以下示例说明如何在Scrapy中使用带有登录数据的经过身份验证的会话:classLoginSpider(BaseSpider):name='example.com'start_urls=['http://www.example.com/users/login.php']defparse(self,response):return[FormRequest.from_response(......
  • 最新nacos下载安装,版本号2.4.0,nacos持久化存储到本地mysql中,nacos配置登录账户密码
    官网:https://nacos.io/zh-cn/docs/quickstart/quick-start1.下载地址:https://github.com/alibaba/nacos/releases网络不好,很难下载。直接使用git克隆,然后自己编译,这是最快的了。克隆:gitclonehttps://github.com/alibaba/nacos.git然后到根目录中(我的:E:\Demos\nacos),执行cmd命令:mv......
  • 【selenium】自动化测试小白入门:实现只开一个窗口,不同用户循环登录
    首先,我在给一个审批流写自动化脚本,需要各个不同的人登录去点通过按钮,每个人的流程都一致,唯一的区别就是user不同。那么,我的实现目标是,不关闭browser,只写一个testcase,实现不同用户按顺序运行同一个testcase第一次尝试,在driver里面写[email protected](scope="session")......
  • 用户登录后从个人资料和注销链接错误重定向到登录页面
    上下文我正在开发一个Django项目,在该项目中我使用配置文件和注销功能实现了用户身份验证。我遇到的问题是,当我尝试从导航栏访问个人资料或注销链接时,它会将我重定向到登录页面,而不是导航到用户的个人资料或执行注销。个人资料链接应该导航如果用户已登录......