首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular网站与SAML (SSO)的集成

Angular网站与SAML (SSO)的集成
EN

Stack Overflow用户
提问于 2018-02-08 22:16:34
回答 1查看 4.1K关注 0票数 0

我有一个网站与前端在AngularJS和后端的Python。

目前,我们为用户提供了一个简单的获取凭据的webform。

表单中的凭据被发送到flask后端( Python )(这是一个基本的身份验证机制)。

现在,我们要在website.Our身份提供者是PingonePing Federate上启用单点登录(SSO)。

我从头开始,没有SAMLSSO的先验知识。我想知道该走哪条路?

使用哪些库,更重要的是,如何使用它们?在这一点上,我不确定SAML如何准确地识别用户,然后对其进行身份验证。

EN

回答 1

Stack Overflow用户

发布于 2018-02-09 08:07:35

SAML的基本交换始于用户请求Python服务器上的资源(页面、SPA应用程序)。服务器确定用户是否已经通过身份验证(具有会话、JWT令牌等),如果没有,则创建一个SAML请求令牌,通过重定向将其发送到身份提供者(为此使用库)。

身份提供者通过数字签名验证SAML请求令牌。一旦验证了令牌,就会要求用户登录(如果他们还没有在那里进行身份验证)。一旦用户通过身份验证,身份提供者就会创建一个SAML请求令牌,该令牌将通过重定向返回到您的服务器。

在收到SAML请求令牌时,您的服务器通过数字签名验证令牌,您将该用户视为已登录(同样,对此部分使用库)。令牌将最低限度地标识用户,但可以包含授权和其他信息。此时,您的用户已经通过了身份验证,您可以在服务器上创建一个会话,或者创建一个JWT令牌,以便在您的angular应用程序中识别Python后端的用户。

创建SAML请求令牌并在生成的SAML响应令牌中进行处理不是一件容易的事。如上所述,使用一个库,最好是经过时间测试的库。我不是Python开发人员,但我在谷歌上找到了这个:onelogin/python-saml

Wikipedia有一个很好的序列图来演示这一点,当然,您可以仔细阅读Oasis SAML docs website上的许多文档。

祝你实现顺利。我在Java中已经做过几次了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48687620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档