Configuring Providers
This guide walks through setting up specific identity providers with Abyss. Each provider requires creating an OAuth2/OIDC application on the external platform and registering it in FerrisKey.
Create a Google OAuth2 app
Go to the Google Cloud Console, create an OAuth 2.0 Client ID with:
- Application type: Web application
- Authorized redirect URI:
https://your-ferriskey.com/realms/{realm}/broker/google/callback
Register in FerrisKey
In the FerrisKey admin console, navigate to Identity Providers → Add Provider and configure:
| Field | Value |
|---|---|
| Name | |
| Type | oauth2 |
| Client ID | From Google Console |
| Client Secret | From Google Console |
| Authorization URL | https://accounts.google.com/o/oauth2/v2/auth |
| Token URL | https://oauth2.googleapis.com/token |
| UserInfo URL | https://openidconnect.googleapis.com/v1/userinfo |
| Scopes | openid, email, profile |
GitHub
Create a GitHub OAuth App
Go to GitHub → Settings → Developer settings → OAuth Apps → New OAuth App:
- Authorization callback URL:
https://your-ferriskey.com/realms/{realm}/broker/github/callback
Register in FerrisKey
| Field | Value |
|---|---|
| Name | GitHub |
| Type | oauth2 |
| Client ID | From GitHub |
| Client Secret | From GitHub |
| Authorization URL | https://github.com/login/oauth/authorize |
| Token URL | https://github.com/login/oauth/access_token |
| UserInfo URL | https://api.github.com/user |
| Scopes | read:user, user:email |
Discord
Create a Discord Application
Go to the Discord Developer Portal, create an application, and add an OAuth2 redirect:
- Redirect URL:
https://your-ferriskey.com/realms/{realm}/broker/discord/callback
Register in FerrisKey
| Field | Value |
|---|---|
| Name | Discord |
| Type | oauth2 |
| Client ID | From Discord |
| Client Secret | From Discord |
| Authorization URL | https://discord.com/api/oauth2/authorize |
| Token URL | https://discord.com/api/oauth2/token |
| UserInfo URL | https://discord.com/api/users/@me |
| Scopes | identify, email |
Custom OIDC Provider
For any OpenID Connect compliant provider (Okta, Auth0, Azure AD, Keycloak):
| Field | How to Find It |
|---|---|
| Authorization URL | Provider’s .well-known/openid-configuration → authorization_endpoint |
| Token URL | → token_endpoint |
| UserInfo URL | → userinfo_endpoint |
| Scopes | Typically openid email profile |
OIDC Discovery
Most OIDC providers publish their configuration at https://provider.com/.well-known/openid-configuration. Use this to find all the endpoint URLs you need.
Provider Management
Disabling a Provider
Toggle enabled to false to hide the provider from the login page without deleting its configuration. Existing federated credentials remain, users can still log in through other methods.
Updating Credentials
When you rotate the client secret on the external provider, update it in FerrisKey immediately. A mismatched secret will cause all federated logins through that provider to fail.
Provider-Specific Configuration
The configuration field accepts arbitrary JSON for provider-specific settings. For example, Azure AD may need a tenant_id:
{
"tenant_id": "your-azure-tenant-id"
}