云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

阿里云_虚拟服务器设置_怎么申请

小七 141 0

单一登录(SSO)到第三方应用程序

去年冬天,我在Databricks的身份和访问管理(IAM)团队做软件工程实习生。在此期间,我有机会参与多个项目,包括一个整个团队与我自己的专用项目一起工作的重大项目。在这个博客里,我将与后者分享我的经历。我专门的实习生项目是为Databricks管理的第三方应用程序(如统一支持门户和Ideas门户)构建单点登录工作流,以改善Databricks提供的整体企业平台体验。项目实施背景我们努力为客户提供优质的第三方体验和客户体验。这包括用于提交功能请求的Ideas门户,用于归档支持通知单和访问内部文档的统一支持门户,以及访问Databricks产品培训材料的教育门户。这些都是客户可能经常访问的服务,为所有这些服务创建和维护凭据是一种糟糕的用户体验。我们简化体验的解决方案是将Databricks工作区用作身份提供者。为此,我们在Databricks中实现了所有这些第三方服务的单点登录工作流。用户工作流我们希望用户工作流程尽可能简单。例如,如果您在未登录的情况下访问支持门户中的票证,那么我们需要一个无缝转换,在该转换中,您将被重定向到用于身份验证的数据块,经过身份验证,然后在后台重定向回来。以下是高层工作流:您可以浏览到第三方门户网站,例如,由Aha支持的创意门户!Ideas门户没有任何活动的浏览器会话,因此它重定向到Databricks门户进行身份验证。Databricks门户没有任何活动的浏览器会话,因此会显示登录页面。成功登录后,将为Databricks门户创建一个浏览器会话,并生成一个访问令牌。浏览器根据Databricks门户的重定向响应重定向到Ideas门户。Ideas门户接受令牌并对您进行身份验证。验证后,将为Ideas门户创建浏览器会话。使用JWT的SSO我们使用jsonwebtokens(JWT)实现了SSO工作流。使用JWT的主要优点是它轻量级、易于维护,并且很容易在将来扩展到新的服务。Databricks门户将生成一个使用HMAC算法签名的JWT。在创建JWT之后,我们将与第三方服务的授权服务器交换令牌,以验证用户的声明。之后,我们终于可以在第三方进行身份验证并无缝登录!SSO重定向为了创造一个完美的用户体验,我们需要让我们的认证流程在后台无缝地工作。例如,假设您收到了一封带有支持通知单和指向支持门户的链接的电子邮件。您单击该链接并期望已经登录。如果您被迫键入凭据或手动转到Databricks工作区,则会中断您的工作流。为了解决这个问题,我们在后端进行了一些重定向,以适当地进行身份验证和登录。SSO流背后的秘密就在我们的cookie存储中。当您访问Databricks工作区时,Databricks将使用您的工作区ID设置顶级域(TLD)cookie。当您在未登录的情况下访问第三方应用程序时,您将被重定向到另一个页面,该页面将读取您的工作区ID,对所提供的工作区进行身份验证,最后将您重定向回您所在的页面。如果您是多个工作区的一部分,则会为每个工作区提供一个选项。使用这个重定向流,Databricks可以在不中断的情况下让您登录到我们的第三方服务。结论在IAM团队工作让我学会了如何作为一个内部开发人员使系统具有可伸缩性,研究面向消费者的特性,学习如何使产品更加健壮和用户友好,并对使用数据块的客户产生影响。我要感谢我的导师,Alexandra Cong,在我需要她的时候一直在那里,我的经理Yun Park在我实习期间给予我的所有支持。另外,我要感谢Rohit Gupta在我的实习生项目中的持续指导,我想对IAM团队的其他成员在我在这里的四个月里提供的宝贵帮助表示感谢!免费试用Databricks。今天就开始吧