Adds max_age role parameter and auth_time claim validation #159
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds a new
max_age
parameter to roles. Themax_age
specifies the allowable elapsed time in seconds since the last time the user actively authenticated with the configured identity provider.When
max_age
is used, the ID Token returned must include anauth_time
claim value (see openid-connect-core-1_0.html#AuthRequest). Validation of theauth_time
claim value is provided by the cap/oidc library (see oidc/provider.go#L414).The
max_age
for a role will be included in the generated auth URL as a query parameter, similar to the following example:Testing
I've added a test for setting the
max_age
role parameter and generating an auth URL with themax_age
query parameter.I've also manually tested Azure Active Directory authentication using
max_age
to observe that active authentication was forced depending on themax_age
and time of last active authentication.