spookygames / flarum-ext-auth-keycloak

Keycloak OAuth Flarum Extension
MIT License
17 stars 3 forks source link

flarum-ext-auth-keycloak

Keycloak OAuth Flarum Extension

Allows users to login/logout using Keycloak.

Installation

To install, use composer:

composer require spookygames/flarum-ext-auth-keycloak

Usage

Keycloak setup

Written for Keycloak version 4.8.3-final, tested up to 21.1.1, and Flarum 1.3.0. Your mileage may vary.

From the Clients tab, add a new client for your Flarum instance (or use an existing one). Root URL should be the URL of your Flarum instance.

Add Keycloak client

In order to map Keycloak roles onto Flarum groups, you have to make roles visible from the userinfo endpoint. To this extent, add a mapper to your new client.

Create Keycloak mapper

Add role mapper to Keycloak client

From the Realm Settings tab, find the key used by the OpenId Connect workflow (by default, RS256). Copy the algorithm as well as the public key.

Find Keycloak keys

Extension settings

In the end, extension settings will be:

Troubleshooting

User created with an odd name that does not match actual user name like 'tgtplwexeowwluxnqid4cjgw' (original issue)

Flarum only allows user names that match the regular expression /[^a-z0-9-_]/i. Every Keycloak user with a "preferred_username" not matching this expression will instead be assigned a random name, as well as a proper Flarum "nickname". In order to see the nickname instead of the random user name, activate the Nicknames extension and use the User Display Name driver named nickname.