Overview

Identified by type="KeyDescriptor", this AttributeExtractor allows the signing/TLS or encryption keys advertised in an IdP's metadata to be exposed as attributes within the SP. This plugin executes only when extraction of an <md:RoleDescriptor> (or one of its concrete subtypes) is done, which is dependent on the use of the metadataAttributePrefix <ApplicationDefaults> setting.

Any public keys that apply (see below) are encoded as DER, using the SubjectPublicKeyInfo encoding commonly used in certificates, and then base64-encoded.

Reference

Attributes

The following XML attributes are supported to control extraction (one of the first three MUST be set):

NameTypeDefaultDescription
signingIdstring

If set, public keys marked for signing or TLS authentication will be placed into an SP attribute with the specified name.

encryptionIdstring

If set, public keys valid for encryption will be placed into an SP attribute with the specified name.

hashIdstring
If set, public keys marked for signing or TLS authentication will be placed into an attribute with the specified name. The DER-encoded keys are hashed before being base64-encoded.
hashAlg string"SHA1"Optional name of hashing algorithm to use if the hashId setting is used. The algorithm names to use here are dependent on the cryptographic library that supplies the hashing. In the case of OpenSSL, they're simple names like "SHA1" or "SHA256"

Example

<AttributeExtractor type="KeyDescriptor" hashId="hashed-keys" hashAlg="SHA256" />