SAML2以形式提交XML SAMLREQUEST值



我正在尝试使用SAML来验证用户登录。我有一个简单的HTML表格。

<form method="post" action="https://abcd/login"> 
   <input type="hidden" name="SAMLRequest" value="request" /> 
   <input type="hidden" name="RelayState" value="token" /> 
   <input type="submit" value="Submit" /> 
</form> 

我对如何将XMLbase64编码用于SAMLRequest使用javascript,我感到困惑。如果有人可以将我指向正确的方向或链接到演示。

这取决于您正在使用的SAML2配置文件。假设您使用的是Web浏览器SSO(WBSSO(,这是通过自动通过发布将浏览器发送到URL的。用户访问您的应用程序,然后创建SAMLREQUEST和RELAYSTATE,然后将表格自动发布到IDP。IDP对用户进行身份验证(您不关心此部分(,然后自动将浏览器重新定向到您的主张消费者服务(ACS(URL,其中包含身份验证信息和属性的base64 samlreponse。这里有一个简单的SP启动过程的概述。

这是我的做法:

<html>
  <body Onload="document.forms[0].submit()">
    <form method="POST" action="<%= request.getAttribute("wbsso_endpoint") %>">
      <input type="hidden" name="SAMLRequest" value="<%= request.getAttribute("SAMLRequest") %>">
      <% if (request.getAttribute("RelayState") != null) { %>
        <input type="hidden" name="RelayState" value="<%= request.getAttribute("RelayState") %>">
      <% } %>
    </form>
  </body>
</html>

最新更新