1use openidconnect::{ClientId, ClientSecret, IssuerUrl, Scope};
2use serde::{Deserialize, Serialize};
3
4#[derive(Deserialize, Serialize, Clone, Default)]
5#[serde(rename_all = "snake_case")]
6pub enum UserIdClaim {
7 Sub,
9 #[default]
11 PreferredUsername,
12}
13
14#[derive(Deserialize, Serialize, Clone)]
15#[serde(deny_unknown_fields)]
16pub struct OidcConfig {
17 pub name: String,
18 pub issuer: IssuerUrl,
19 pub client_id: ClientId,
20 pub client_secret: Option<ClientSecret>,
21 pub scopes: Vec<Scope>,
22 #[serde(default)]
23 pub allow_sign_up: bool,
24 pub require_group: Option<String>,
25 #[serde(default)]
26 pub claim_userid: UserIdClaim,
27}