···4242{
4343 # Zitadel: identity provider for lassul.us services (OIDC). Anyone can
4444 # register; users sign in with a passkey or an external login (GitHub,
4545- # Google, other OIDC) linked to their account. The login policy, the GitHub
4646- # and Google logins and the services' projects and OIDC apps come from
4545+ # Google, their own OpenID provider via byoidc) linked to their account. The
4646+ # login policy, these logins and the services' projects and OIDC apps come from
4747 # lass.zitadel (modules/zitadel); the zitadel-reconcile service applies
4848 # them. Further IdPs and the grants of "managed" projects are done in the
4949 # console at https://id.lassul.us/ui/console.
···144144 "profile"
145145 "email"
146146 ];
147147+ };
148148+ # byoidc (configs/byoidc.nix): sign in with any OpenID provider. Anyone
149149+ # can run one that claims any email address, so these accounts are never
150150+ # linked to existing ones.
151151+ byoidc = {
152152+ type = "oidc";
153153+ name = "Your own provider";
154154+ issuer = "https://byoidc.lassul.us";
155155+ clientId = "zitadel";
156156+ clientSecretFile = config.clan.core.vars.generators.byoidc.files."client-secret".path;
157157+ providerOptions = {
158158+ isLinkingAllowed = false;
159159+ isCreationAllowed = true;
160160+ isAutoCreation = true;
161161+ isAutoUpdate = true;
162162+ };
147163 };
148164 };
149165 clan.core.vars.generators.zitadel-github =