Skip to content

Conversation

@rhafer
Copy link
Member

@rhafer rhafer commented Feb 2, 2026

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-configuration endpoint. Do we really need that? This should always be the issuer-url as returned in the http://openid.net/specs/connect/1.0/issuer relation + .well-known/openid-configuration. The OIDC spec even define is as a MUST (https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig).
  • ResponseType: We default to code here, 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

@rhafer rhafer self-assigned this Feb 2, 2026
@TheOneRing
Copy link
Contributor

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.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
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
Copy link
Member

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 🙈

Copy link
Member Author

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
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
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
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
### Example Response
### Server Response

}
}
```

Copy link
Member

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.
Copy link
Member

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?

Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants