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 の属性クエリーをサポートします。