Federation Data
required
Under the federation_data
option configuration related to OpenID Federation
is set.
entity_id
¶
uri required
The entity_id
option is used to set the Federation Entity ID.
config.yaml
federation_data:
entity_id: https://lighthouse.example.com
trust_anchors
¶
list optional
The trust_anchors
option is used to specify the Trust Anchors that should
be used.
config.yaml
federation_data:
trust_anchors:
- entity_id: https://ta.example.com
- entity_id: https://other-ta.example.org
jwks: {...}
For each list element the following options are defined:
entity_id
¶
uri required
The entity_id
of the Trust Anchor.
jwks
¶
jwks recommended
The jwks
of the Trust Anchor that was obtained out-of-band. If omitted, it
will be obtained from the Trust Anchor's Entity Configuration and implicitly
trusted. In that case you are trusting TLS.
Tip
We recommend to provide the jwks
as json
. json
is valid yaml
and
can just be included. This way you can pass the whole jwks
in a single
line.
authority_hints
¶
list of uris required, unless there are no superiors
The authority_hints
option is used to specify the Entity IDs of Federation
Entities that are direct superior to LightHouse and that issue a statement about LightHouse.
config.yaml
federation_data:
authority_hints:
- https://ta.example.com
federation_entity_metadata
¶
object / mapping recommended
The federation_entity_metadata
option is used to set data that should be included in metadata.federation_entity
inside the Entity's Entity Configuration.
The following options are available:
display_name
¶
string recommended
The display_name
option sets the Display Name of this Entity to be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
display_name: Example Trust Anchor
description
¶
string optional
The description
option sets the Description of this Entity to be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
description: "This is the Trust Anchor for the Example Federation."
keywords
¶
list of string optional
The keywords
option sets Keywords for this Entity that should be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
keywords:
- TA
- foo
- bar
contacts
¶
list of string optional
The contacts
option sets the Contacts of this Entity to be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
contacts:
- contact@example.com
logo_uri
¶
uri optional
The logo_uri
option sets the Logo URI of this Entity to be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
logo_uri: https://static.example.com/ta/logo.png
policy_uri
¶
uri optional
The policy_uri
option sets the Policy URI for this Entity to be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
policy_uri: https://ta.example.com/policy
information_uri
¶
uri optional
The information_uri
option sets the Information URI for this Entity to be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
information_uri: https://ta.example.com/about
organization_name
¶
string optional
The organization_name
option sets the Organization Name for this Entity to be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
organization_name: Example Organization
organization_uri
¶
uri optional
The organization_uri
option sets the Organization URI for this Entity to be included in the Federation Metadata.
config.yaml
federation_data:
federation_entity_metadata:
organization_uri: https://example.com
extra
¶
object / mapping optional
The extra
option is used to set additional data that should be included the Federation
Entity Metadata.
config.yaml
federation_data:
federation_entity_metadata:
extra:
foo: bar
level: 2
metadata_policy_file
¶
file path optional
The metadata_policy_file
option is used to set a metadata policy that is applicable to all subordinates. The
passed file must contain the Metadata Policy as json per OpenID Federation Specification.
It is optional to provide this option, but if provided the file must exist and contain valid Metadata Policy.
config.yaml
federation_data:
metadata_policy_file: /path/to/metadata-policy.json
constraints
¶
object / mapping optional
The constraints
option is used to set the Constraints object that should be included in the Entity Configuration.
The configuration of this option is in line / analogous to how Constraints are defined in the OpenID Federation
Specification.
config.yaml
federation_data:
constraints:
max_path_len: 2
naming_constraints:
permitted:
- .example.com
excluded:
- east.example.com
allowed_entity_types:
- openid_provider
- openid_relying_party
crit
¶
list of strings optional
The crit
option is used to set which additional claims are critical as per OpenID Federation Specification.
config.yaml
federation_data:
crit:
- foobar
metadata_policy_crit
¶
list of strings optional
The crit
option is used to set which additional metadata policy operators are critical as per OpenID Federation
Specification.
config.yaml
federation_data:
metadata_policy_crit:
- remove
trust_marks
¶
list of trust mark configs optional
The trust_marks
option is used to set Trust Marks (about LightHouse) that should be published
in the Entity Configuration.
config.yaml
federation_data:
trust_marks:
- trust_mark_type: https://example.com/tm
trust_mark_issuer: https://example.com/tmi
refresh: true
min_lifetime: 300
refresh_grace_period: 7200
Each Trust Mark Config has the following options defined:
trust_mark_type
¶
string required
The trust_mark_type
option sets the Identifier for the type of this Trust
Mark.
trust_mark_issuer
¶
uri
required if trust_mark_jwt
not given
The trust_mark_issuer
option is used to set the Entity ID of the Trust
Mark Issuer of this Trust Mark.
Either a Trust Mark JWT (trust_mark_jwt
) must be given or the Trust Mark
Issuer (trust_mark_issuer
).
If this option is given, refresh
will be set to true
and LightHouse
will obtain Trust Mark JWTs for this Trust Mark Type dynamically.
trust_mark_jwt
¶
string
required if trust_mark_issuer
not given
The trust_mark_jwt
option is used to set a Trust Mark JWT string. This
will be published in the Entity Configuration.
If the set Trust Mark JWT expires, it either must be manually updated before
expiration, or automatic refreshing must be enabled through the refresh
option.
refresh
¶
boolean
false
optional
The refresh
option indicates if this Trust Mark should automatically be
refreshed. If set to true
, LightHouse will fetch a new Trust Mark JWT from
the Trust Mark Issuer when the
old one expires, assuring that always a valid Trust Mark JWT is published in
the Entity Configuration.
min_lifetime
¶
integer 10 optional
The min_lifetime
option is used to set a minimum lifetime in seconds on
this Trust Mark. If refresh
is set to true
LightHouse will assure
that the Trust Mark JWT published in the Entity Configuration will not
expire before this lifetime whenever an Entity Configuration is requested.
refresh_grace_period
¶
integer 3600 optional
The refresh_grace_period
option is used to set a grace period given in
seconds. The default grace period is one hour. If refresh
is
set to true
, LightHouse checks if the Trust Mark expires within the defined grace
period, whenever its Entity Configuration is requested. If the Trust Mark
expires within the grace period the old (but still valid) Trust Mark JWT
will still be included in the Entity Configuration, but in parallel LightHouse
will refresh it by requesting a new Trust Mark JWT from the Trust Mark Issuer.
This allows LightHouse to proactively request Trust Mark JWTs that are expiring soon in the background.
trust_mark_issuers
¶
object / mapping optional
The trust_mark_issuers
option is used to set the allowed trust mark issuers within this federation. The
configuration of this option is in line with the format in the OpenID Federation Specification.
config.yaml
federation_data:
trust_mark_issuers:
"https://openid.net/certification/op": []
"https://refeds.org/sirtfi":
- https://example.org
trust_mark_owners
¶
object / mapping optional
The trust_mark_owners
option is used to set the trust mark owners recognized within this federation. The
configuration of this option is in line with the format in the OpenID Federation Specification.
config.yaml
federation_data:
trust_mark_owners:
"https://refeds.org/sirtfi":
sub: https://refeds.org
jwks: {"keys":[{"alg":"RS256","e":"AQAB","kid":"key1","kty":"RSA","n":"pnXBOusEANuug6ewezb9J_...","use":"sig"}]}
extra_entity_configuration_data
¶
object / mapping optional
The extra_entity_configuration_data
option is used to set additional data that should be included in the
Entity Configuration.
config.yaml
federation_data:
extra_entity_configuration_data:
foo: bar
level: 2
configuration_lifetime
¶
integer 86400 optional
The configuration_lifetime
option sets the lifetime of Entity Configurations, i.e. this options defines for how long
the Entity Configuration JWTs are valid. The time is given in seconds and the default is one day.
config.yaml
federation_data:
configuration_lifetime: 604800
`