【问题标题】:Does the XML Namespace of SAML AuthnRequest Matter?SAML AuthnRequest 的 XML 命名空间是否重要?
【发布时间】:2015-01-22 23:10:00
【问题描述】:

我正在使用 Pysaml2 库在 python 中创建一个服务提供者。我正在尝试向我的身份提供者 Okta 发送一个 AuthnRequest。我的 AuthnRequest 看起来像这样:

<ns0:AuthnRequest AssertionConsumerServiceURL="http://myserviceprovider:8000/saml/acs" 
        Destination="https://oktapreview.com/app/myserviceprovider/k40ctg3zVVFQYUMEJFTB/sso/saml" 
        ID="id-02a0e2290bbc7fda421483af6b02a9a5" IssueInstant="2015-01-20T22:57:02Z" 
        ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Version="2.0" xmlns:ns0="urn:oasis:names:tc:SAML:2.0:protocol"> 
    <ns1:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity" xmlns:ns1="urn:oasis:names:tc:SAML:2.0:assertion">http://myserviceprovider:8000/metadata.xml</ns1:Issuer> 
    <ns0:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/> 
</ns0:AuthnRequest>

我的 SP 向 okta idp 发起 302 重定向并发送此 saml 请求。然后我会看到一个登录页面,我可以在其中输入我的 Okta 凭据。然后我被带到 okta.com/app/UserHome(这是 Okta 的主页),并且没有收到任何返回到我的 SP 的断言消费者服务端点的 SAML 断言。

我在 Firefox 中使用 SAML Tracer 验证 SAML 活动。

在查看了来自其他服务提供商(例如 box.net)的许多其他 SAML AuthnRequest 之后,我开始认为我的 AuthNRequest 的 xml 命名空间可能导致 okta 不发回 acs 断言。

我的命名空间是“ns0”和“ns1”,而不是“saml2p”和“samlp”。

这会导致问题吗?

任何其他关于使用 pysaml2 构建服务提供者的建议也将不胜感激。

【问题讨论】:

  • 我不是 XML 专业人士,但我认为您必须先定义 ns0。像这样:

标签: python single-sign-on saml okta


【解决方案1】:

它会导致问题吗?取决于 Okta 在其 SAML 规范要求中的松懈程度,这最终对他们来说是个问题。

命名空间定义为here,并且,因为它是一个规范,IMO,它应该被遵循。对于 AuthnRequest,规范的具体部分是 here

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 2011-07-24
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多