首页 > 解决方案 > 从 Angular 7 项目中的第三方服务器读取 SAML 响应

问题描述

我创建了一个Angular 7项目

http://myproject.com/

如果用户未登录,我将用户重定向到另一个安全的身份验证服务器(https://secureauth.com)以登录。这里它提示输入用户名和密码。然后它检查用户凭据。

一旦用户成功登录到安全身份验证服务器。它返回一个 SAML 响应。为此,我已将返回 URL 启用为

http://myproject.com/ 

在安全的身份验证服务器中。在这里,我需要处理来自我的 Angular 项目的 SAML 响应。

我有些疑惑,

我如何处理角度 7 中的 SAML 响应?因为它是一种客户端语言。是否有可能得到回应?

请分享一些关于此的想法。

标签: angularangular7saml-2.0

解决方案


问题 1:这里我需要处理来自我的 Angular 项目的 SAML 响应。我如何处理 Angular 7 中的 SAML 响应?


您需要使用 Angular 7 Web 应用程序实现 SAML SP,以处理 SAML IdP(例如 Shibboleth IdP)发送的 SAML 响应。

GitHub 存储库中带有 Angular 客户端的 SAML2.0 WebSSO是 2018 年 3 月发布的开源客户端 Angular 应用程序。

为了在您的生产环境中快速部署 SAML SP,强烈建议利用第三方 SAML SP(例如带有 Angular 客户端的 SAML2.0 WebSSO)。然后,您就有足够的时间为您的 Angular 7 Web 应用程序开发自己的 SAML SP。

问题2:因为它是一种客户端语言。是否有可能得到回应?

回答
是的。
如果您使用 Angular 7 应用程序实现 SAML SP,Angular 7 应用程序可以获取响应、解码 SAML 响应、验证 SAML 断言签名,然后从 SAML 响应中检索用户信息以登录到您的 Angular 7 应用程序并将 SAML 用户映射到 Angular 7 应用程序的本地用户帐户。

Angular 7 项目中的 SAML SP负责从第三方 SAML IdP 服务器(例如“ https://secureauth.com ”)读取 SAML 响应。

(I) How to build and run Shibboleth SAML IdP and SP using Docker container at GitHub repository 提供了关于使用 Shibboleth SAML IdP 和 OpenLDAP 构建基于 SAML 的身份验证/授权提供程序的说明。

  • Shibboleth SAML IdP 负责身份联合。

  • OpenLDAP 负责身份认证。

这将帮助您获得有关SAML SP 如何处理第三方 SAML IdP 发送的 SAML 响应的实践经验。

(II) 我已经验证了由 Docker-running Shibboleth SAML IdP (Identity Provider) 和 OpenLDAP 为以下企业应用程序提供的 SAML 单点登录 (SSO)。换句话说,我利用 Docker 运行的 Shibboleth SAML IdP 和 OpenLDAP 成功登录到以下企业应用程序。

Microsoft Office 365
Google G Suite
Salesforce
Dropbox
Box
Amazon AWS
OpenStack
Citrix NetScaler
VMware vCloud Director
Oracle NetSuite

(III) StackOverflow 的另一个问题“如何使用 SAML 和 Shibboleth 实现或集成单点登录”提供了有关 SAML 配置的有价值的信息和讨论。


推荐阅读