工程的博客

单点登录(SSO)的第三方应用程序

通过凯尔Lim

2019年5月3日 工程的博客

分享这篇文章

过去的这个冬天,我是一个软件工程实习生在砖身份和访问管理团队(我)。在我的时间在这里,我有机会工作在多个项目,包括一个主要项目,整个团队工作以及自己的专门项目。在这个博客中,我将分享我的经历。我的专用的实习生项目建设单点登录工作流等Databricks-managed第三方应用程序的统一门户支持门户和想法,为了提高整个企业平台所提供的经验数据砖。bob体育客户端下载

项目实施

背景

砖争取良好的用户体验,为此我们提供的第三方服务的企业级客户体验的关键。这包括思想门户提交特性请求,统一支持门户文件支持门票和访问内部文档,和一个教育门户访问砖产品培训材料。这些都是服务客户可能经常访问,这是一个糟糕的用户体验来创建和维护所有这些服务的凭证。

简化的经验我们的解决方案是使用砖工作区作为身份提供商。要做到这一点,我们实现了一个单点登录工作流对于所有这些第三方服务在砖与您的凭据。

用户工作流程

我们希望用户工作流尽可能简单。举个例子,如果你访问支持门户中的一张票没有登录,我们想要一个无缝的过渡,你被重定向到砖进行验证,验证,然后重定向回在幕后。

这是在高层工作流程:

  1. 你浏览到一个第三方门户,例如,思想门户支持啊!
  2. 门户的想法没有任何积极的浏览器会话,所以它重定向到砖门户进行身份验证。
  3. 砖门户没有任何积极的浏览器会话,所以你看到登录页面。
  4. 成功登录之后,创建一个浏览器会话的砖门户,我们生成一个访问令牌。
  5. 浏览器重定向到的思想门户在重定向响应数据砖门户。
  6. 门户的思想接受令牌和身份验证。
  7. 创建一个浏览器会话的想法门户在身份验证。

使用SSO JWT

我们通过使用实现SSO工作流JSON Web标记(JWT)。使用JWT的主要优势是,它是轻量级的,易于维护,和简单的规模在未来的新服务。砖门户将生成一个JWT签署使用HMAC算法,。创建JWT后,我们将与授权服务器交换令牌的第三方服务来验证用户的要求。之后,我们终于可以在第三方认证和无缝登录!

SSO重定向

为了工艺完美的用户体验,我们需要让我们的身份验证流无缝地在幕后工作。例如,假设你收到一封电子邮件,一个支持的机票和支持门户的链接。你点击链接,希望已经签署。如果你被迫输入凭证或手动去砖工作区,它打破了您的工作流。为了解决这个问题,我们做一些重定向后端适当的身份验证和登录。

我们的SSO流背后的秘密是在我们cookie存储。当你访问你的砖工作区,砖集顶级域(TLD)与您的工作区ID cookie。当你访问一个第三方应用程序不被签署,您的工作区中被重定向到另一个页面,上面写着ID,在工作区提供验证,最后将您重定向回你的页面。如果你是多个工作空间的一部分,有一个选项为每个工作区。使用这种重定向流量,砖可以签没有打扰你到我们的第三方服务。

结论

我团队工作让我学会如何使系统可扩展作为一个内部开发人员,致力于面向消费者的特性,学习如何使产品更健壮的和用户友好的,并影响顾客使用砖。

我要感谢我的导师,亚历山德拉琮、每当我需要她和我的经理,Yun公园,在我实习的所有支持。另外我要感谢Rohit Gupta持续的指导在我专用的实习生项目,我想给其余的喊出我团队的宝贵的帮助在我在这里四个月!

免费试着砖
看到所有工程的博客的帖子