用于SAML2身份验证的Apache Knox继续使用NameIDFormat实体,而不是配置的实体

问题描述 投票:0回答:1

我正在尝试使用Apache Knox为Apache Zeppelin启用SSO功能,该功能配置为将身份验证请求重定向到Siteminder IdP。

我遇到的问题与NameID格式配置和签名配置有关。

无论我在sp / idp元数据中配置了什么,使用的NameID格式都是

缸:绿洲:名称:tc:SAML:2.0:名称标识格式:实体

并且始终在将Signed请求设置为true的情况下发送请求。

我的SP配置如下:

<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://knox.test.com/gateway/knoxsso/api/v1/websso?pac4jCallback=true%26client_name=SAML2Client">
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol http://schemas.xmlsoap.org/ws/2003/07/secext">
<NameIDFormat>
  urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
</NameIDFormat>
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://knox.test.com/gateway/knoxsso/api/v1/websso?pac4jCallback=true%26client_name=SAML2Client"/>
   <AssertionConsumerService
            Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" index="1" isDefault="true"  Location="https://knox.test.com/gateway/knoxsso/api/v1/websso?pac4jCallback=true%26client_name=SAML2Client"/>
</SPSSODescriptor>

我激活了SAML跟踪器,并尝试了登录用户的旅程。基于此配置发送到Siteminder IdP的AuthNRequest看起来像这样:

<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 AssertionConsumerServiceURL="https://knox.test.com/gateway/knoxsso/api/v1/websso?pac4jCallback=true%26client_name=SAML2Client"
                 Destination="https://test-siteminder.com/test/saml2sso"
                 ForceAuthn="false"
                 ID="_yp52mio0oj4ho2niijmnnaikgbkid9tnc5h5ear"
                 IsPassive="false"
                 IssueInstant="2020-02-17T10:19:24.279Z"
                 ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                 ProviderName="pac4j-saml"
                 Version="2.0"
                 >
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
              Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
              NameQualifier="https://knox.test.com/gateway/knoxsso/api/v1/websso?pac4jCallback=true%26client_name=SAML2Client"
              >https://knox.test.com/gateway/knoxsso/api/v1/websso?pac4jCallback=true%26client_name=SAML2Client</saml2:Issuer>

我可以在请求的Parameters部分中看到一个签名值,这就是为什么我假设AuthNRequest已签名的原因(尽管我对此的理解很小,所以可能是错误的假设!)>

有人可以解释为什么NameIDFormat是作为实体而不是未指定的实体通过的吗?Apache knox是否支持SAML1协议?

提前感谢!

我正在尝试使用Apache Knox为Apache Zeppelin启用SSO功能,该功能配置为将身份验证请求重定向到Siteminder IdP。我遇到的问题与NameID格式...

saml saml-2.0 knox-gateway apache-knox
1个回答
0
投票

[您在帖子中提到NameID格式为urn:oasis:names:tc:SAML:2.0:nameid-format:entity,但在您粘贴的代码中为urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified,只是复制粘贴错误?看起来protocolSupportEnumeration也引用了SAML 1协议。 Knox在不支持SAML 1的后台使用Pac4J,这可能是原因。

© www.soinside.com 2019 - 2024. All rights reserved.