For the complete documentation index, see llms.txt. This page is also available as Markdown.

OAuth2

OAuth2 authentication is configured in config/authentication.yaml. Chamilo includes built-in support for Azure AD, Keycloak, Facebook, and any generic OAuth2-compliant provider.

Step 1 — Register Chamilo in your identity provider

Create an application in your provider's admin panel and set the redirect URI to:

https://your-chamilo-url/connect/<provider>/check

Where <provider> is azure, keycloak, facebook, or the name you give a generic provider. Note the Client ID and Client Secret.

Step 2 — Configure authentication.yaml

Enable the provider and supply its credentials. All providers share these common keys:

Key
Description

enabled

true to activate

title

Label shown on the login button

client_id

From your identity provider

client_secret

From your identity provider

allow_create_new_users

Auto-create a Chamilo account on first login

allow_update_user_info

Sync user data on each login

force_as_login_method

Disable other methods and force this one

Azure AD (Microsoft Entra ID)

Azure has its own dedicated page covering app registration, group-based role mapping, certificate authentication, and the account-provisioning sync commands — see Azure Entra ID.

Keycloak

Facebook

Generic OAuth2

Use this for Google, GitLab, or any OAuth2-compliant provider:

Field mapping (how provider attributes map to Chamilo's firstname, lastname, email, etc.) and role mapping are also configurable. See the wiki for the full list of mapping keys.

Step 3 — Clear cache and test

Log out of Chamilo. The configured provider's button should appear on the login page. Test with a dedicated account before rolling out to all users.

Tips

  • Keep the standard login form enabled so administrators can always log in if OAuth2 has issues.

  • Role assignment defaults to student; use group mapping (Azure) to promote users to teacher or admin roles automatically — see Azure Entra ID for details on that and on matching incoming users to existing accounts.

Last updated

Was this helpful?