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"
}