Endpoints
required, if LightHouse should do anything useful
The endpoints
config option is used to enable and configure the various endpoints that LightHouse supports. By
enabling endpoints LightHouse functionality is extended, i.e. LightHouse can serve different roles depending on the
enabled endpoints.
fetch
¶
Under the fetch
option the Federation Subordinate Fetching Endpoint is configured.
This endpoint is required if LightHouse serves as a Trust Anchor and / or Intermediate Authority.
config.yaml
endpoints:
fetch:
path: /fetch
statement_lifetime: 3600
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Fetch Endpoint is available. Unless url
is not set
the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Fetch Endpoint. To include an external Fetch Endpoint in the
Federation Metadata in the Entity Configuration set url
. However, for the Fetch Endpoint it is unlikely that this
deployment scenario makes sense.
url
¶
uri optional
The url
option is used to set the external url of the Fetch Endpoint that is published in the Federation Metadata
in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
statement_lifetime
¶
integer 600000 optional
The statement_lifetime
option sets the lifetime of the issued Entity Statements. The time is given in seconds. The
default is a bit less than one week.
list
¶
Under the list
option the Federation Subordinate Listing Endpoint is configured.
This endpoint is required if LightHouse serves as a Trust Anchor and / or Intermediate Authority.
config.yaml
endpoints:
list:
path: /list
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Listing Endpoint is available. Unless url
is not set
the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Listing Endpoint. To include an external Listing Endpoint in the
Federation Metadata in the Entity Configuration set url
. However, for the Listing Endpoint it is unlikely that this
deployment scenario makes sense.
url
¶
uri optional
The url
option is used to set the external url of the Listing Endpoint that is published in the Federation Metadata
in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
resolve
¶
Under the resolve
option the Resolve Endpoint is configured.
This endpoint is generally optional. However, if LightHouse should serve as a Resolver it is obviously required.
config.yaml
endpoints:
resolve:
path: /resolve
grace_period: 3600
time_elapsed_grace_factor: 0.75
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Resolve Endpoint is available. Unless url
is not set
the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Resolve Endpoint. To include an external Resolve Endpoint in the
Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Resolve Endpoint that is published in the Federation Metadata
in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
grace_period
¶
integer 86400 optional
The grace_period
option sets a Grace Period for the Resolver Cache.
If a cached statement used by the resolver is not yet expired (on a request that needs it), but it will expire
within this grace period, the cached statement still will be used, but might be refreshed in the background (see
also the time_elapsed_grace_factor
option). The grace period is given in seconds.
time_elapsed_grace_factor
¶
float 0.5 optional
The time_elapsed_grace_factor
option is used to further tweak the grace period behavior.
A cached statement that expires within the grace period will only be refreshed if a certain amount of its lifetime
already has elapsed. How much time needs to already have elapsed is defined by this time_elapsed_grace_factor
.
Example
If grace_period
is set to 3600
statements that expire within one hour might be refreshed. If there would be
no time_elapsed_grace_factor
(or it would be set to 0.0
) a statement that is only valid for an hour, would
always hit the grace period and would trigger a refresh even if it was only just fetched.
With a time_elapsed_grace_factor=0.75
LightHouse would only trigger a refresh if also 75% of the lifetime
(45mins in this case) have been passed.
trust_mark
¶
Under the trust_mark
option the Federation Trust Mark Endpoint is configured.
This endpoint is required if LightHouse serves as a Trust Mark Issuer.
config.yaml
endpoints:
trust_mark:
path: /trustmark
trust_mark_specs:
- trust_mark_type: https://tm.example.org
lifetime: 86400
ref: https://tm.example.org/ref
logo_uri: https://tm.example.org/logo
extra_claim: foobar
delegation_jwt: ey...
checker:
type: trust_path
config:
trust_anchors:
- entity_id: https://ta.example.com
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Trust Mark Endpoint is available. Unless url
is not set
the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Trust Mark Endpoint. To include an external Trust Mark Endpoint in the
Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Trust Mark Endpoint that is published in the Federation Metadata
in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
trust_mark_specs
¶
list required, if trust marks should be issued
The trust_mark_specs
option is used to configure which Trust Marks can be issued.
Each list element has the following configuration options defined:
trust_mark_type
¶
string required
The trust_mark_type
option sets the Trust Mark Type (ID) of the Trust Mark.
lifetime
¶
integer required, if the Trust Mark should expire
The lifetime
option is used to set the lifetime of each Trust Mark JWT. The time is given in seconds.
ref
¶
uri optional
The ref
option is used to set the ref uri inside the Trust Mark JWT, as defined in the OpenID Federation
Specification.
logo_uri
¶
uri optional
The logo_uri
option is used to set the logo uri inside the Trust Mark JWT, as defined in the OpenID Federation
Specification.
delegation_jwt
¶
string required, if delegation is used
The delegation_jwt
option is used to set the delegation JWT inside the Trust Mark JWT, as defined in the OpenID
Federation Specification. The delegation JWT is required if this LightHouse instance is not the Trust Mark Owner,
but issues Trust Marks on behalf of the owner.
Extra Claims¶
Additional claims can be provided. Any provided claim that is not defined here will also be added to the Trust Mark JWT.
checker
¶
object / mapping optional
The checker
option is used to configure Entity Checks that can be used to
dynamically issue Trust Marks to Entities. Check the Entity Checks documentation on
the configuration format. Also see Trust Marks for some more details on how Trust Mark
issuance works with LightHouse.
trust_mark_request
¶
Under the trust_mark_request
option a custom / proprietary endpoint can be configured. This endpoint allows an
Entity to request to be entitled for a certain Trust Mark. Our implementation of the
Trust Mark Endpoint allows automatic checks; this endpoint can be used for manual checks,
with the following general flow:
flowchart TD
A[Entity requests Trust Mark via the Trust Mark Request endpoint]
B[Admin reviews the request]
C[No Trust Mark granted]
D[Entity is entitled to obtain Trust Mark]
E[Entity obtains Trust Mark from the Trust Mark endpoint]
A --> B
B -->|Decline| C
B -->|Approve| D
D --> E
A request to the Trust Mark Request endpoint is defined just as a request to the Trust Mark Endpoint.
This endpoint is optional and only applicable if LightHouse serves as a Trust Mark Issuer.
config.yaml
endpoints:
trust_mark_request:
path: /trustmark/request
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Trust Mark Request Endpoint is available. Unless url
is
not set the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Trust Mark Request Endpoint. To include an external Trust Mark
Request Endpoint in the Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Trust Mark Request Endpoint that is published in the Federation
Metadata in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
trust_mark_status
¶
Under the trust_mark_status
option the Federation Trust Mark Status Endpoint is configured.
This endpoint is optional and only applicable if LightHouse serves as a Trust Mark Issuer.
NYI
The current implementation of the Trust Mark Status Endpoint is not yet updated to draft 43 - and therefore works complelty differently.
config.yaml
endpoints:
trust_mark_status:
path: /trustmark/status
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Trust Mark Status Endpoint is available. Unless url
is
not set the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Trust Mark Status Endpoint. To include an external Trust Mark
Status Endpoint in the Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Trust Mark Status Endpoint that is published in the Federation
Metadata in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
trust_mark_list
¶
Under the trust_mark_list
option the Federation Trust Marked Entities Listing Endpoint is configured.
This endpoint is optional and only applicable if LightHouse serves as a Trust Mark Issuer.
config.yaml
endpoints:
trust_mark_list:
path: /trustmark/list
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Trust Marked Entities Listing Endpoint is available.
Unless url
is not set the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Trust Marked Entities Listing Endpoint. To include an external
Trust Marked Entities Listing Endpoint in the Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Trust Marked Entities Listing Endpoint that is published in the
Federation Metadata in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
historical_keys
¶
Under the historical_keys
option the Federation Historical Keys Endpoint is configured.
This endpoint is optional.
NYI
This Endpoint is not yet implemented.
config.yaml
endpoints:
historical_keys:
path: /federation_historical_keys
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Historical Keys Endpoint is available. Unless url
is
not set the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Historical Keys Endpoint. To include an external Historical Keys
Endpoint in the Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Historical Keys Endpoint that is published in the Federation
Metadata in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
enroll
¶
Under the enroll
option a custom / proprietary endpoint can be configured. This endpoint allows an
Entity to automatically be enrolled to the federation. This works by configured
Entity Checks that an Entity must pass before it will be enrolled to the federation.
See Enrolling Entities for more information about how to enroll
Entities and on how the request is defined.
This endpoint is optional and only applicable if LightHouse serves as a Trust Anchor / Intermediate Authority.
config.yaml
endpoints:
enroll:
path: /enroll
checker:
type: trust_path
config:
trust_anchors:
- entity_id: https://ta.example.com
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Enroll Endpoint is available. Unless url
is not set
the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide an Enroll Endpoint. To include an external Enroll Endpoint in the
Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Enroll Endpoint that is published in the Federation Metadata
in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
checker
¶
object / mapping optional
The checker
option is used to configure Entity Checks that can be used to decide
whether an Entity will be enrolled or not. Check the Entity Checks documentation on
the configuration format.
enroll_request
¶
Under the enroll_request
option a custom / proprietary endpoint can be configured. This endpoint allows an
Entity to request to be enrolled to the federation. Our (also proprietary)
Enrollment Endpoint allows automatic checks; this endpoint can be used
for manual checks, with the following general flow:
flowchart TD
A[Entity requests Enrollment via the Enroll Request endpoint]
B[Admin reviews the request]
C[Entity not enrolled]
D[Entity is enrolled]
E[Entity is included in Listing Endpoint response]
F[Entity is fetchable from the Fetch Endpoint]
A --> B
B -->|Decline| C
B -->|Approve| D
D --> E
D --> F
A request to the Enroll Request endpoint is defined just as a request to the Enroll Endpoint.
This endpoint is optional and only applicable if LightHouse serves as a Trust Anchor / Intermediate Authority.
config.yaml
endpoints:
trust_mark_request:
path: /trustmark/request
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Enroll Request Endpoint is available. Unless url
is
not set the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Enroll Request Endpoint. To include an external Enroll
Request Endpoint in the Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Enroll Request Endpoint that is published in the Federation
Metadata in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.
entity_collection
¶
Under the entity_colleection
option the Federation Entity Collection Endpoint is configured. This is a
work-in-process extension draft, currently available at: https://zachmann.github.io/openid-federation-entity-collection/main.html
This endpoint is optional.
config.yaml
endpoints:
list:
path: /list
path
¶
string
required, unless url
is given
The path
option is used to set the url path under which the Entity Collection Endpoint is available. Unless url
is
not set the full external url will be <entity_id><path>
.
If path
is not set, LightHouse will not provide a Entity Collection Endpoint. To include an external Entity
Collection Endpoint in the Federation Metadata in the Entity Configuration set url
.
url
¶
uri optional
The url
option is used to set the external url of the Entity Collection Endpoint that is published in the Federation
Metadata in the Entity Configuration. This option is usually not set. There are two cases where it might be set:
- To overwrite the default constructing of the external url from the provided
path
. This should usually not be needed. - To use an external Endpoint.