WSO2 在 SAML 请求中添加断言

问题描述

有人知道如何在 SAML 请求中向联合 iDP 添加额外的断言吗?问题是 SAML 请求中没有 nameID:

?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest AssertionConsumerServiceURL="https://testserver.domain.local:9443/commonauth"
                    Destination="https://idp.eu.safenetid.com/auth/realms/XXXXXXXXXX-STA/protocol/saml"
                    ForceAuthn="true"
                    ID="_b53cdb3765c8b92fa51d6079a061deaf"
                    IsPassive="false"
                    IssueInstant="2021-02-03T10:45:48.275Z"
                    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                    Version="2.0"
                    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
  <samlp:Issuer xmlns:samlp="urn:oasis:names:tc:SAML:2.0:assertion">WSO2</samlp:Issuer>
  <saml2p:RequestedAuthnContext Comparison="exact"
                                xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml2:AuthnContextClassRef xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml2:AuthnContextClassRef>
  </saml2p:RequestedAuthnContext>
</samlp:AuthnRequest>

我们配置了联合 iDP - SafeNet 并且不会将其用作第二因素身份验证。 我在 SP 中配置了 2 个步骤,其中第一步是基本身份验证,第二步是 Federeted iDP - SafeNet (Saml2webSSO)。但是,正如您所看到的,WSO2 不在请求中包含 nameID,并且在安全网登录页面上未填充用户名。也许我们可以通过某种方式配置要包含在 SAML 请求中的内容

解决方法

您可以通过在 IDP 配置中启用 Include NameID Policy 配置来在身份验证请求中启用 NameID 策略。 (身份提供者 > 联合身份验证器 > SAML2 Web SSO 配置)

enter image description here

您也可以在 NameID 格式配置中添加请求的 NameID 策略。

enter image description here