Identity Provider
Upstream Identity Provider
By default, Arminius comes with the Nuss IdP in dev mode, providing no real authentication. Instead of using dev mode, you can configure an upstream IdP in Nuss by setting the environment variables of Nuss.
These are the instructions to configure Zitadel as an upstream IdP:
arminius-server-scim
- In the organisation you want to sync, create the Service User “arminius” (Access Token Type: JWT).
- Click on “Actions” > “Generate Client Secret”. Set
SCIM_CLIENT_IDandSCIM_CLIENT_SECRETenvironment variables of arminius-server-scim to the shown credentials. - Set
SCIM_TOKEN_ENDPOINTof arminius-server-scim tohttp://$ZITADEL/oauth/v2/token.
Nuss
- In the same organisation, create the Service User “nuss” in the Zitadel Console (Access Token Type: Bearer).
- Click on “Actions” > “Generate Client Secret”. Set
CLIENT_IDandCLIENT_SECRETenvironment variables of nuss to the shown credentials. - Add the Service User as a manager to the organisation, with the permission “Org Owner Viewer”.
- Set
SCIM_BASE_URLtohttp://$ZITADEL/scim/v2/$ORG_ID/(replace the variables) andSCOPEStoopenid urn:zitadel:iam:org:project:id:zitadel:aud. - Add an application in Zitadel (in any project in any organisation). Select “Web” > “PKCE”. The Redirect URI should be configured to
http://$NUSS_SERVER/login(by default, it’slocalhost:9000). - Set
OIDC_CLIENT_IDto the shown client id. SetOIDC_BASE_URLtohttp://$ZITADEL/. - Set
BASE_URLto the user-facing URL for Nuss. - Under “Token Settings” set the “Auth Token Type” to “JWT”.
Custom Identity Provider
If your IdP directly provides the required custom extensions, you can omit Nuss and configure the OIDC-related environment variables directly in Arminius.
Set OIDC_BASE_URL to the OIDC provider.