IDPとインターフェイスしており、基本的なAuthNRequestを次のように作成しています。
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="IDTest1"
Version="2.0"
IssueInstant="2013-03-04T09:21:59"
AssertionConsumerServiceIndex="0"
AttributeConsumingServiceIndex="0">
<saml:Issuer>https://myapp.com/saml2/sp</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>
IDPは、署名されたとおりにリクエストを送信することを望んでいます。私の質問は次のとおりです。
これの多くはドキュメントでカバーされていることに注意してください:
リクエストに署名するには、次のようなものを追加する必要があります(通常はsp.xmlにあります)。
<SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
署名キーは次のようになります。
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate> MIIDWTC...CAkGgAwIBAgIEe+a+/uaSZCp5g2z+hRWRV+DyfQc9nO
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
ここで、MII ...は公開鍵です。
@Stefanによると、ライブラリを使用する方がはるかに簡単です。
SAML認証リクエストはXMLドキュメントです。他のXMLドキュメントに署名するのと同じように、SAML認証要求に署名できます。ただし、いくつかの制限があります。
SAMLアサーションとプロトコルの仕様( http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf )の詳細については、セクション5。
あなたの質問は不十分です!
送信しているAuthRequestは[〜#〜] redirect [〜#〜]リクエストのようですが、ダイジェスト、署名、証明書は表示されません。これらの詳細はすべて、パラメーターとしてURLに含まれます。
POST SSOリクエストを使用してみてください。ここでは、SAMLリクエストにダイジェスト、署名、証明書が表示されます。
Metadata
を共有する必要があります。これには、ID、署名アルゴリズム、ハッシュ方法、公開鍵などの基本構成が含まれます。より大きなフレームワークを使用せずに独自のリクエストを作成する場合は、OpenSAMLをお勧めします。 SAMLメッセージの作成を支援するライブラリです。
私の本 OpenSAMLのガイド では、これ以上のことが詳細に説明されています。
編集私は 本の新版 をリリースしました。OpenSAMLV3をカバーしています
ここ はSAMLメッセージの署名について書いた例です
そして1つ AuthnRequestsをディスパッチする方法について。
セキュリティに関することは決して簡単ではありません... @ nzpcmadによってリンクされたドキュメントと SAML2プロファイル (WB SSO-Webブラウザのシングルサインオンを探してください)を確実に確認する必要があります。
Java OpenSamlは、確かに最も簡単なソリューションの1つです。
落とし穴は、HTTPリダイレクトバインディングでは、署名が追加のURLパラメータによって転送され、SAMLRequest値の一部ではないことです。 https://my-idp.com/login?SAMLRequest=nVNN...%3D&SigAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256&Signature=QZ64 ...%3D%3D