Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HP-1361 Feat/keycloak external OIDC #77

Merged
merged 44 commits into from
May 9, 2024
Merged
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
30b8bb3
adding keycloak idp auth url
MichaelLukowski Mar 19, 2024
44038b7
update keycloak idp if statement
MichaelLukowski Mar 19, 2024
9ea986b
fix link and debug statment
MichaelLukowski Mar 19, 2024
b2c3811
config changes for keycloak
MichaelLukowski Mar 19, 2024
b664f46
fix python syntax
MichaelLukowski Mar 19, 2024
f781b33
scope changes for keycloak
MichaelLukowski Mar 19, 2024
4e30fd5
adding debug statement for refresh
MichaelLukowski Apr 1, 2024
8a0903d
ensure oidc configure correctly
MichaelLukowski Apr 1, 2024
8f68e0f
udpate keycloak token url
MichaelLukowski Apr 2, 2024
accc308
update format for token exchange urls
MichaelLukowski Apr 2, 2024
bc3699b
change keycloak scope
MichaelLukowski Apr 2, 2024
83d4ed4
update keycloak token fetch
MichaelLukowski Apr 2, 2024
55c8b15
typo fix
MichaelLukowski Apr 2, 2024
61a2c06
change auth grant_type for keycloak
MichaelLukowski Apr 2, 2024
eed8251
another change to token fetching
MichaelLukowski Apr 2, 2024
8aa2f89
adding debug for authorization url
MichaelLukowski Apr 2, 2024
9f7c60c
fix debug statement
MichaelLukowski Apr 2, 2024
7f3315d
fix realms typo
MichaelLukowski Apr 3, 2024
f42074f
add loging statement for tokens that are not from fence:
MichaelLukowski Apr 4, 2024
c4fe619
expiration for keycloak
MichaelLukowski Apr 4, 2024
bf3bc7a
change keycloak expiration
MichaelLukowski Apr 10, 2024
2d47904
remove most debug statements and clean up
MichaelLukowski Apr 16, 2024
4016e94
update api setup for keycloak
MichaelLukowski Apr 16, 2024
4c22cd3
adding debug statements
MichaelLukowski Apr 16, 2024
f332c15
debug oidc auth url
MichaelLukowski Apr 16, 2024
e487c06
fix keycloak urls
MichaelLukowski Apr 16, 2024
cafb326
keycloak auth url
MichaelLukowski Apr 16, 2024
11fef27
fix scope
MichaelLukowski Apr 16, 2024
d7e77e4
update readme
MichaelLukowski Apr 16, 2024
531ffb8
clean up comments
MichaelLukowski Apr 16, 2024
162751d
update external oidc check
MichaelLukowski May 1, 2024
991d181
debug oauth client
MichaelLukowski May 1, 2024
606c255
new token username parsing
MichaelLukowski May 2, 2024
585ab75
fix oidc client metadata
MichaelLukowski May 2, 2024
53a6fd7
change config and added debug
MichaelLukowski May 2, 2024
f473e11
update urls to use urljoin
MichaelLukowski May 3, 2024
ce109ac
address PR comments
MichaelLukowski May 6, 2024
a78b851
update config tests
MichaelLukowski May 6, 2024
090643e
update tests for new config
MichaelLukowski May 7, 2024
96704c6
Fix aggregate tests
paulineribeyre May 8, 2024
eb5876a
Fix to support aggregate tests' anonymous requests
paulineribeyre May 8, 2024
4a078e4
link ticket
paulineribeyre May 8, 2024
28d165c
update readme for username
MichaelLukowski May 8, 2024
d0e1a61
Update README.md
paulineribeyre May 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,18 @@ Note that IDP IDs (`other-google` and `other-orcid` in the example above) must b
Also note that the OIDC clients you create must be granted `read-storage` access to all the data in the external
Data Commons via the data-commons' `user.yaml`.

The `id_token_username` property for OIDC clients can be configured with `.` in between strings for a nested username inside a token.
For example if the token jwt has username encoded in the json as `token["context"]["user"]["name"]`.
We can write this in the paramaters as `"id_token_username": "context.user.name"`
The default if nothing is specified for a fence client it defaults to `"context.user.name"` for a non-fence client the default is `"email"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it displays as a single paragraph, we need to either add newlines to display multiple paragraphs or add periods to separate the sentences:

Screenshot 2024-05-09 at 10 07 56 AM

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `id_token_username` property for OIDC clients can be configured with `.` in between strings for a nested username inside a token.
For example if the token jwt has username encoded in the json as `token["context"]["user"]["name"]`.
We can write this in the paramaters as `"id_token_username": "context.user.name"`
The default if nothing is specified for a fence client it defaults to `"context.user.name"` for a non-fence client the default is `"email"`
The `id_token_username` property for OIDC clients can be configured with `.` in between strings for a nested username inside a token.
For example if the token jwt has username encoded in the json as `token["context"]["user"]["name"]`:
We can write this in the parameters as `"id_token_username": "context.user.name"`.
If nothing is specified, for a fence client the default is `"context.user.name"`, for a non-fence client the default is `"email"`.



The `redirect_uri` property for external OIDC providers is
an optional field that supports sharing OIDC client
configuration between multiple workspace deployments
as part of a multi-account application system.


Finally, non fence IDPs can be provided given their auth url, token url, and necessary scope as a part part of the `params` of the external IDP.

The key `aggregate_endpoint_allowlist` is an optional key which consists of a list of endpoints that are supported by the `/aggregate` api.
Expand Down
Loading