在没有Express的Reactjs中实现单点登录(saml2)

时间:2019-03-29 13:17:39

标签: reactjs single-sign-on saml-2.0 wso2is

我想在反应中用wso2 ei实现sso saml2 1.我转到页面检查我是否已通过身份验证 2.如果未通过身份验证,则应重定向到sso URL 3.当我在sso身份提供程序上成功登录时,我使用令牌重定向到我的react应用 4.然后将令牌保存到本地存储并继续

我已经用通行证尝试过了,并表达了服务器端渲染的位置,但是我现在想在客户端进行反应 脚步 1.i转到我的主页,然后单击登录页面 2.it带我去wso2身份提供者,然后我登录 3.然后我重定向到我的Express应用

1 个答案:

答案 0 :(得分:0)

简短的答案:您不能那样做。

没有后端,您将无法使用SAML。 SAML要求您注册服务提供商(SP),该服务提供商必须可以通过SSL证书进行识别。因此,SP必须具有私钥,出于明显的原因,您不能将该私钥分发给浏览器客户端。最重要的是,断言端点应该接受POST HTTP请求,传统上只有服务器可以执行。

如果知道要使用哪个IdP,则可以跳过IdP发现,但是不能绕过声明阶段。您必须具有SSO的断言终结点。该端点必须能够解密使用SP的公钥加密的消息,因此必须在服务器上实现。

要尽可能接近所需,可以将SP实施为单独的微服务,该服务只有一个(如果使用DS,则只有两个)端点。登录服务的断言终结点可以为用户创建令牌,并将其重定向到在查询变量中携带令牌的前端。