Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/org-quicko/skillset/llms.txt

Use this file to discover all available pages before exploring further.

Identity Providers let Users sign in through a trusted third party instead of (or in addition to) a locally-managed password. Skillset supports three kinds — Google Workspace, Microsoft Entra, and GitHub OAuth — and you can enable any combination of them simultaneously. Each kind may appear at most once in a Registry. Providers are configured from Settings → Login in the web interface and require the Superadmin role.
Password login is always available, even when Identity Providers are configured. It is the fallback path if a provider’s credentials expire or the upstream service is unreachable.

Prerequisites

Set PUBLIC_URL in your environment before configuring any provider. The Registry builds every OAuth redirect URI from this value, and it refuses to start without one.
# .env
PUBLIC_URL=https://skills.example.com
The redirect URI registered in each provider’s console follows the same pattern:
<PUBLIC_URL>/api/auth/callback/<kind>
Where <kind> is one of google, microsoft, or github — one URI per provider, registered separately in each console.

Supported providers

Google Workspace

The Registry checks the hd (hosted domain) claim in the Google ID token against your list of Permitted Organisations. Only accounts belonging to one of your configured Workspace domains are admitted; personal Gmail accounts are always refused when any Permitted Organisation is set.Set up an OAuth app in Google Cloud Console:
1

Create an OAuth client

In the Google Cloud Console, navigate to APIs & Services → Credentials and create an OAuth 2.0 Client ID of type Web application.
2

Add the redirect URI

Under Authorised redirect URIs, add:
<PUBLIC_URL>/api/auth/callback/google
3

Copy the credentials

Note the Client ID and Client secret — you will paste them into Settings → Login.
4

Add the provider in Skillset

Open Settings → Login, click Add Provider, select Google, and fill in:
  • Client ID and Client Secret from the previous step
  • Permitted Organisations: one or more Workspace domain suffixes (e.g. example.com). A sign-in is admitted only if its hd claim matches one of these values.
  • Enabled: toggle on when ready.
An account whose email domain matches a Permitted Organisation but was authenticated by a Google account type that does not issue an hd claim will be refused. Always test with a real Workspace account from your domain before enabling in production.

Permitted Organisations

Each provider holds a list of Permitted Organisations. A sign-in is admitted when the identity the provider asserts belongs to any one of the values on the list:
ProviderValue storedWhat the Registry checks
Google WorkspaceWorkspace domain (e.g. example.com)hd claim in the ID token
Microsoft EntraTenant ID (GUID)tid claim in the ID token
GitHub OAuthOrganisation login (e.g. acme-corp)Live /user/orgs membership
Permitted Organisations are matched case-insensitively. Duplicate entries (same value, different casing) are merged when the provider is saved.

Ungated providers

A provider with an empty Permitted Organisations list is called an ungated provider. It admits every account the provider can authenticate, with no further check. This is a deliberate, supported configuration — for example, a company running its own GitHub Enterprise with all employees already inside it. The Registry logs a warning every time an ungated login succeeds, so the audit trail reflects the configuration.
An ungated provider means anyone who can authenticate with that service gets a reader account on your Registry. Enable this only when your Identity Provider already enforces the membership boundary you need.

Disabling a provider

There is no delete action for Identity Providers. To take a provider out of service, edit it and set Enabled to off. This prevents new sign-ins through that provider while leaving existing accounts intact. Deleting a provider would lock out every User whose only sign-in path ran through it.

Relationship to the GitHub Integration

The GitHub Identity Provider (used for sign-in) and the GitHub Integration (used for importing Resources from repositories) are completely separate registrations. They are registered independently, granted different scopes, and neither knows about the other. Configuring one does not affect or imply the other.

Build docs developers (and LLMs) love