Java Fedlet は SAMLv2 の属性クエリーをサポートし、Oracle OpenSSO 8.0 Update 2 などのアイデンティティープロバイダに特定のアイデンティティー属性の値を問い合わせます。クエリーに署名をしたり、クエリーを暗号化したりするよう Fedlet を設定できます。Fedlet クエリーを発行するには署名が必要ですが、暗号化は任意です。
「Java Fedlet の署名および暗号化のサポート」の手順に従って、XML 署名を有効にして属性クエリーに署名します。
前の手順で生成した証明書を Fedlet の sp.xml ファイル内にある RoleDescriptor 要素に追加します。次の例では、ペーストした証明書の中に 2 つの KeyDescriptor タグがあります。1 つは署名用で、もう 1 つは暗号化用です。暗号化を有効にしていない場合、KeyDescriptor use="encryption" タグは不要です。
<RoleDescriptor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query"
xsi:type="query:AttributeQueryDescriptorType"
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>
--certificate--
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
<KeyDescriptor use="encryption">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
--certificate--
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc">
<xenc:KeySize
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">128</xenc:KeySize>
</EncryptionMethod>
</KeyDescriptor>
</RoleDescriptor>
Java Fedlet の sp-extended.xml ファイルで、signingCertAlias 属性の値を指定して、設定している場合は encryptionCertAlias 属性の値も指定します。
アイデンティティープロバイダを設定して表明を暗号化する場合は、NameID 要素も暗号化します。したがって、wantNameIDEncrypted 属性の値を true に設定する必要があります。AttributeQueryConfig 要素に XML コードを追加します。次に例を示します。
<Attribute name="signingCertAlias">
<Value>test</Value>
</Attribute>
<Attribute name="encryptionCertAlias">
<Value>test</Value>
</Attribute>
<Attribute name="wantNameIDEncrypted">
<Value>true</Value>
</Attribute>
この例では、test はサンプル鍵のエイリアスです。
Java Fedlet のメタデータファイル (sp.xml) をアイデンティティープロバイダにインポートします。
また、アイデンティティープロバイダで追加の設定手順を実行して Fedlet の属性クエリーをサポートします。