4

ASP.Net Web ポータルのシングル サインオンをサポートする SAML サービス プロバイダーを実装しました。これは、クライアントのサイトで構成されたシュリンク ラップ ソフトウェアであり、SAML 準拠の ID プロバイダーとやり取りできる必要があります。

My Assertion Consumer Service (ACS) ページは、GET メソッドと POST メソッドの両方を介して SAML 応答を受け入れます。

SAML プロトコルを理解しているので、SAML Request ProtocolBindingプロパティは、応答でサポートされているプロトコルを指定します。現在、私のリクエストは HTTP-Redirect バインディングを指定しています。ただし、 HTTP-Redirect (GET) とHTTP-POST (POST)の両方をサポートしていることを宣言したいと思います。繰り返したいと思う以上の SAML ドキュメントを検索した結果、サポートされている複数のプロトコル バインディングを宣言するための構文が見つかりません (または、それが有効かどうかもわかりません)。

この宣言を構成可能にすることもできますが、両方のバインディングを宣言して、ポータルを追加構成しなくても ID プロバイダーが機能するようにすることをお勧めします。

以下は私の認証リクエストのサンプルです。ProtocolBinding に対して HTTP-Redirect と HTTP-POST の両方を宣言する方法を誰かが知っている場合は、ご意見をいただければ幸いです。

<?xml version="1.0" encoding="utf-8"?>
<samlp:AuthnRequest 
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    ID="[AUTHN_ID]" 
    Version="2.0"
    IssueInstant="[ISSUE_INSTANT]"
    ProtocolBinding="urn:oasis:names.tc:SAML:2.0:bindings:HTTP-Redirect"
    ProviderName="[PROVIDER_NAME]"
    AssertionConsumerServiceURL="[ACS_URL]">
    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
        PortalEntityID
    </saml:Issuer>
    <samlp:NameIDPolicy 
        AllowCreate="true" 
        Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
</samlp:AuthnRequest>

助けていただける方、よろしくお願いします!

4

2 に答える 2

4

AuthnRequestのProtocolBinding属性は、SAML応答XMLを送信するときにIdPによって使用される予定のバインディングを指定するために使用されます。URLクエリ文字列に長さ制限がある可能性があるため、HTTPリダイレクトはここで使用する有効なオプションではありません。SAML応答は、特に署名されている場合、かなり長くなる可能性があります。SAML仕様[SAMLProf]から引用します。

... IDプロバイダーは、ユーザーエージェントからサービスプロバイダーに配信される<Response>メッセージを発行します。HTTP POSTまたはHTTPアーティファクトバインディングのいずれかを使用して、ユーザーエージェントを介してメッセージをサービスプロバイダーに転送できます。メッセージはエラーを示しているか、(少なくとも)認証アサーションを含んでいる可能性があります。応答は通常、ほとんどのユーザーエージェントによって許可されているURLの長さを超えるため、HTTPリダイレクトバインディングは使用しないでください。
于 2010-02-10T19:57:19.233 に答える
0

かなりの調査の結果、1 つの SAML 要求で 1 つのプロトコル バインディングしか宣言できないようです。

于 2009-12-09T14:34:40.647 に答える