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.

Google

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:

FieldValue
NameGoogle
Typeoauth2
Client IDFrom Google Console
Client SecretFrom Google Console
Authorization URLhttps://accounts.google.com/o/oauth2/v2/auth
Token URLhttps://oauth2.googleapis.com/token
UserInfo URLhttps://openidconnect.googleapis.com/v1/userinfo
Scopesopenid, 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

FieldValue
NameGitHub
Typeoauth2
Client IDFrom GitHub
Client SecretFrom GitHub
Authorization URLhttps://github.com/login/oauth/authorize
Token URLhttps://github.com/login/oauth/access_token
UserInfo URLhttps://api.github.com/user
Scopesread: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

FieldValue
NameDiscord
Typeoauth2
Client IDFrom Discord
Client SecretFrom Discord
Authorization URLhttps://discord.com/api/oauth2/authorize
Token URLhttps://discord.com/api/oauth2/token
UserInfo URLhttps://discord.com/api/users/@me
Scopesidentify, email

Custom OIDC Provider

For any OpenID Connect compliant provider (Okta, Auth0, Azure AD, Keycloak):

FieldHow to Find It
Authorization URLProvider’s .well-known/openid-configurationauthorization_endpoint
Token URLtoken_endpoint
UserInfo URLuserinfo_endpoint
ScopesTypically 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"
}