Java Fedlet 支持 SAMLv2 属性查询,以针对特定的身份属性值查询诸如 Oracle OpenSSO 8.0 Update 2 等身份认证提供者。可以将 Fedlet 配置为对查询进行签名和加密。发出 Fedlet 查询必须要进行签名,但加密是可选操作。
启用 XML(可扩展标记语言)签名以对属性查询进行签名,如Java Fedlet 支持签名和加密中所述。
将前面步骤中生成的证书添加到 Fedlet sp.xml 文件的 RoleDescriptor 元素中。在以下示例中,有两个要在其中粘贴证书的 KeyDescriptor 标记。一个用于签名,另一个用于加密。如果未启用加密,则不需要 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。将 XML(可扩展标记语言)代码添加到 AttributeQueryConfig 元素中。例如:
<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 属性查询。