3

Pysaml2 ライブラリを使用して Python でサービス プロバイダーを作成しています。ID プロバイダーである 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 アサーションを返さなかったのではないかと考えるようになりました。

私の名前空間は、'saml2p' と 'samlp' ではなく、'ns0' と 'ns1' です。

これにより問題が発生しますか?

pysaml2 を使用したサービス プロバイダーの構築に関するその他の推奨事項も歓迎します。

4

1 に答える 1

1

それは問題を引き起こしますか?Okta の SAML 仕様要件がどの程度緩いかにもよりますが、最終的には、それが問題になります。

名前空間はここで定義されており、これは仕様であるため、IMO に従う必要があります。AuthnRequest の場合、仕様の特定の部分はhereです。

于 2015-01-23T04:45:58.537 に答える