Federation
required
Under the federation
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:
entity_id: https://example.com
client_name
¶
string OFFA - Openid Federation Forward Auth optional
The client_name
option is used to set a custom client name.
config.yaml
federation:
client_name: My Service
client_uri
¶
uri optional
The client_uri
option is used to set a client URI to be published in the relying party metadata in the entity
configuration.
config.yaml
federation:
client_uri: https://client.example.com
display_name
¶
string optional
The display_name
option is used to set a display name to be published in the relying party metadata.
config.yaml
federation:
display_name: My Service Display Name
description
¶
string optional
The description
option is used to set a description to be published in the relying party metadata.
config.yaml
federation:
description: This is a description of the service
keywords
¶
list of strings optional
The keywords
option is used to set keywords to be published in the relying party metadata.
config.yaml
federation:
keywords:
- service
- authentication
- federation
contacts
¶
list of strings optional
The contacts
option is used to set contact information to be published in the relying party metadata.
config.yaml
federation:
contacts:
- admin@example.com
- support@example.com
policy_uri
¶
uri optional
The policy_uri
option is used to set a URI to the privacy policy to be published in the relying party metadata.
config.yaml
federation:
policy_uri: https://example.com/privacy-policy
tos_uri
¶
uri optional
The tos_uri
option is used to set a URI to the terms of service to be published in the relying party metadata.
config.yaml
federation:
tos_uri: https://example.com/terms-of-service
information_uri
¶
uri optional
The information_uri
option is used to set a URI to additional information about the service to be published in the relying party metadata.
config.yaml
federation:
information_uri: https://example.com/info
logo_uri
¶
uri <entity_id>/static/img/offa-text.svg optional
The logo_uri
option is used to set a custom logo uri. By default, the OFFA
logo is used.
config.yaml
federation:
logo_uri: https://static.example.com/logo.png
organization_name
¶
string optional
The organization_name
option is used to set the organization name
published in the OpenID Federation Entity Configuration.
config.yaml
federation:
organization_name: Example Organization
organization_uri
¶
uri optional
The organization_uri
option is used to set a URI to the organization's website to be published in the relying party metadata.
config.yaml
federation:
organization_uri: https://organization.example.com
extra_rp_metadata
¶
mapping / object optional
The extra_rp_metadata
option is used to add custom key-value pairs to the relying party metadata in the entity configuration.
config.yaml
federation:
extra_rp_metadata:
custom_field: custom_value
another_field: another_value
extra_entity_configuration_data
¶
mapping / object optional
The extra_entity_configuration_data
option is used to add custom key-value pairs to the entity configuration.
config.yaml
federation:
extra_entity_configuration_data:
custom_entity_field: custom_value
another_entity_field: another_value
scopes
¶
list of strings recommended
The scopes
option is used to set which scopes should be requested from the
OpenID Providers.
config.yaml
federation:
scopes:
- openid
- profile
- email
trust_anchors
¶
list required
The trust_anchors
option is used to specify the Trust Anchors that should
be used.
config.yaml
federation:
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
The authority_hints
option is used to specify the Entity IDs of Federation
Entities that are direct superior to OFFA and that issue a statement about OFFA.
config.yaml
federation:
authority_hints:
- https://ia.example.com
configuration_lifetime
¶
duration 1 day 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.
config.yaml
federation:
configuration_lifetime: 1w
`
key_storage
¶
deprecated
The key_storage
option is deprecated. Use signing.key_storage
instead.
filter_to_automatic_ops
¶
boolean
false
optional
The filter_to_automatic_ops
option is currently unused.
config.yaml
federation:
filter_to_automatic_ops: true
trust_marks
¶
list of trust mark configs optional
The trust_marks
option is used to set Trust Marks that should be published
in the Entity Configuration.
config.yaml
federation:
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 OFFA
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
, OFFA will fetch a new Trust Mark JWT from
the Trust Mark Issuer before 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
OFFA 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
, OFFA 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 OFFA
will refresh it by requesting a new Trust Mark JWT from the Trust Mark Issuer.
This allows OFFA to proactively request Trust Mark JWTs that are expiring soon in the background.
use_resolve_endpoint
¶
boolean
false
optional
The use_resolve_endpoint
option indicates if OFFA uses an external
resolver (from the federation) to resolve Trust Chains or does the resolving
by its own.
It is generally more performant to rely on an external resolver.
config.yaml
federation:
use_resolve_endpoint: true
use_entity_collection_endpoint
¶
boolean
false
optional
The use_entity_collection_endpoint
option indicates if OFFA uses an external
entity collection endpoint (from the federation) to collect OpenID Providers
in the federation. The collected providers are used to give the user a
provider selection to they can choose the provider they want to use.
It is generally more performant to rely on an external endpoint.
config.yaml
federation:
use_entity_collection_endpoint: true
entity_collection_interval
¶
duration 5 minutes optional
The entity_collection_interval
option defines in which interval OFFA will
query the Entity Collection Endpoint or do entity collection on its own.
config.yaml
federation:
entity_collection_interval: 1h