Keycloak en WordPress oAuth 2.0 integratie

Rollen

,

Programmeertalen

Achtergrond informatie

Keycloak is een open source applicatie om single sign-on met Identity en Access Management in te loggen applicaties en diensten. oAuth 2.0 is een veilige manier van inloggen. De Single Sign On (SSO) maakt het mogelijk om dezelfde inlognaam en wachtwoord voor verschillende applicaties te gebruiken. In Keycloak kan per applicatie voor iedere gebruiker andere rechten worden ingesteld.

Single-Sign On

Gebruikers authenticeren zich met Keycloak in plaats van de individuele applicaties zoals WordPress. Dit betekent dat WordPress niets te maken heeft met inlogformulieren, het authenticeren van gebruikers en het opslaan van gebruikers. Eenmaal ingelogd op Keycloak, hoeven gebruikers niet opnieuw in te loggen om toegang te krijgen tot een andere applicatie. Dit geldt ook voor het uitloggen. Keycloak biedt single-sign-out, wat betekent dat gebruikers slechts één keer hoeven uit te loggen om uit te loggen bij alle applicaties die Keycloak gebruiken.

Standaard protocollen

Keycloak is gebaseerd op standaardprotocollen en biedt ondersteuning voor OpenID Connect, OAuth 2.0 en SAML. Voor WordPress zijn verschillende oAuth 2.0 met Single Sign On (SSO) plugins beschikbaar. De meeste zijn gratis maar om rollen vanuit Keycloak met WordPress te koppelen moet de betaalde versie aangeschaft worden.

Identity Brokering en Social Login

keycloak social login

Het inloggen met sociale netwerken is eenvoudig toe te voegen. Door de sociale netwerk te selecteren worden deze in de keycloak login formulier getoond.. Er is geen code of wijziging van de applicatie vereist. Keycloak kan ook gebruikers authenticeren met bestaande OpenID Connect of SAML 2.0 Identity Providers. Dit heet Identity Brokering.

Project goal

Keycloak wordt gebruikt in de WordPress ontwikkel-, test- en productieomgeving. Ontwikkelaars hoeven maar één keer in te loggen en hebben toegang tot de verschillende omgevingen. Voor klanten moet het niet mogelijk zijn om in de develop- en testomgeving in te loggen. Alleen in de productieomgeving mogen klanten inloggen en krijgen ze een andere rol dan de ontwikkelaars.

Het inloggen van zowel de WordPress admin als de front-end voor klanten moet via oAuth 2.0 gaan. SSO moet werken voor zowel ontwikkelaars als voor klanten. Hierbij krijgen klanten een andere rol dan de ontwikkelaars.

De Identity server (Keycloak) moet geïnstalleerd en geconfigureerd worden.

Oplossing

Docker is gebuikt voor zowel Keycloak als voor de WordPress develop-, test en productieomgeving. In keycloak zijn groepen aangemaakt voor software ontwikkelaars en klanten.

Ontwikkelde en gebruikte plugins

  • OpenID Connect Generic Client
  • Authentication plugin
    Deze zelfgemaakte plugin override de nodige functies van de OpenID Connect Generic Client zodat de authenticatie flow werkt zoals deze in Keycloak is geïmplementeerd.