Keycloak Social Login extension for Discord.
Download keycloak-discord-<version>.jar
from Releases page.
Then deploy it into $KEYCLOAK_HOME/providers
directory.
Access to Discord Developer Portal and create your application. You can get Client ID and Client Secret from the created application.
Note: You don't need to setup the theme in master
realm from v0.3.0.
- Add
discord
Identity Provider in the realm which you want to configure. - In the
discord
identity provider page, setClient Id
andClient Secret
. - (Optional) Set Guild Id(s) to allow federation if you want.
To sync roles from Discord -> Keycloak, do the following:
- Under the
discord
Identity Provider, fill outDiscord Roles mapping
value with the roles you want synced:
- The format is
Discord-Guild-ID:Discord-Role-ID:Group-Name
, like so:613425648685547541:613426529623605268:discord-devs-moderators
- You can specify multiple roles by separating them with commas:
613425648685547541:613426529623605268:discord-devs-moderators,613425648685547541:936746847437983786:discord-devs-modmail
- If you want to add a role just because the user is on the server, you can use the everyone role ID, which is the same as the guild ID :
613425648685547541:613425648685547541:everyone
- Set up a Mapper under the
discord
Identity Provider:
- Set Mapper Type to
Claim to Group Mapper
- Set Claim to
discord-groups
- Tick Create Groups if not exists
If the above doesn't get role syncing working, fiddle around with the Sync mode override. (I have mine set to Force
, so it re-imports info on every login)
Clone this repository and run mvn package
.
You can see keycloak-discord-<version>.jar
under target
directory.