2

OpenAM 用の SAML2 AuthnRequest を作成しようとしています。動作する get に対して実行できる URL がありますが、これを XHTML 投稿フォームに構成する際に問題があります。

クエリ文字列を含む作業 URL は次のとおりです。

http://internal.authhost.com:8080/opensso/idpssoinit?NameIDFormat=urn:oasis:names:tc:SAML:2.0:nameid-format:transient&metaAlias=%2FMYRealm%2Fidp&spEntityID=https%3A%2F%2Fsaml.salesforce .com&binding=urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Abindings%3AHTTP-POST&RelayState=webj_captureCustomerDetails

私のhtmlフォームは次のようになります:

<form action="http://internal.authhost.com:8080/opensso/idpssoinit" method="post" target="new">
  <input type="text" name="SAMLRequest" value="PHNhbWxwOkF1dGhuUmV..."></input>
  <input type="text" name="RelayState" value="webj_captureCustomerDetails"></input>
  <input type="submit"/>
</form>

SAMLRequest の値は、Base 64 でエンコードされた

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="_d7607d551380ac97853a6ff4907c4ef01219be97dd" Version="2.0"
    IssueInstant="2008-05-27T07:46:06Z" ForceAuthn="true" IsPassive="false"
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
    AssertionConsumerServiceURL="https://cs4.salesforce.com/?saml=lkjhkljhkljhkjhlkjh"
    ProviderName="https://saml.salesforce.com">
    <saml:Issuer>https://saml.salesforce.com</saml:Issuer>
    <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
        AllowCreate="true"/>
</samlp:AuthnRequest>

このフォームを発行すると、OpenAM から「Service Provider ID is null」というエラー メッセージが表示されます。

XML に metaAlias=/MYRealm/idp 引数が含まれていないことはすぐにわかりますが、メッセージには、spEntityID=https://saml.salesforce.com 引数も見つからないことが示されています。

XML でこれら 2 つのプロパティ (metaAlias と spEntityID) を指定する必要がある場所についてアドバイスをお願いします。

OpenAM COT / IdP 構成が SAML AuthnRequest メッセージに対してどのようにマップされるかを指定する場所へのリンクもいただければ幸いです。

4

1 に答える 1

2

問題は、間違ったURLにアクセスしていたことでした。これは、サービスプロバイダーがSSOを開始したため、spssoinitにヒットするはずでした。

于 2011-11-01T18:24:49.683 に答える