-
Notifications
You must be signed in to change notification settings - Fork 164
adr: Document OIDC client parameter discovery #2253
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
base: main
Are you sure you want to change the base?
Conversation
|
lgtm |
|
|
||
| - Authentik basically creates a different issuer URL for each client. As OpenCloud | ||
| can only work with a single issuer URL, all OpenCloud clients need to use the | ||
| same client id to work with Authetnik. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| same client id to work with Authetnik. | |
| same client id to work with Authentik. |
| ## Decision Drivers | ||
|
|
||
| * Support broader set of IDPs | ||
| * Do required the user got configure anything additional on the client side |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this sentence 🙈
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Me neither 😄
| discovery, enabling clients to query for the correct OIDC `client_id` and | ||
| `scopes` based on their application type (e.g., web, desktop, android, ios). | ||
|
|
||
| This is achieved by allowing and additional `platform` query parameter to be used |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| This is achieved by allowing and additional `platform` query parameter to be used | |
| This is achieved by allowing an additional `platform` query parameter to be used |
| GET /.well-known/webfinger?resource=https://cloud.opencloud.test&rel=http://openid.net/specs/connect/1.0/issuer&platform=desktop | ||
| ``` | ||
|
|
||
| ### Example Response |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ### Example Response | |
| ### Server Response |
| } | ||
| } | ||
| ``` | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How would the server configuration for this look like? Especially since every platform might differ slightly.
| can only work with a single issuer URL, all OpenCloud clients need to use the | ||
| same client id to work with Authetnik. | ||
| - Some IDPs (kanidm) are not able to work with user-supplied client ids. They generate | ||
| client ids automatically and do not allow to specify them manually. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So how does OpenCloud get the information which client id to propagate to e.g. the Android app then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will be a Server configuration variable
This basically documents what as discussed in #2072 and https://github.com/opencloud-eu/internal/issues/172
I am mainly adding to this to keep a record of why we're doing it and how.
@kulmann To make all clients use the same mechanism for discovering the oidc parameter it would IMO be good if web could switch to as well. However, looking at the other OIDC related parameters that can be configured in web. I have some questions.
WEB_OIDC_METADATA_URL: This allows to set the URL for the.well-known/openid-configurationendpoint. Do we really need that? This should always be the issuer-url as returned in thehttp://openid.net/specs/connect/1.0/issuerrelation +.well-known/openid-configuration. The OIDC spec even define is as aMUST(https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig).ResponseType: We default tocodehere, have we ever encountered the need to set something else? To we need to have this configurable?PostLogoutRedirectURI: I guess this is really specifc to web? So we should probably keep it in the config.json