Keycloak
Sissejuhatus
TODO
Tõõpõhimõte
TODO
Käesolevas tekstis kirjeldatakse Wordpress ja Keycloak kasutamist Dockerhost keskkonnas
- wordpress v. 5.9
- keycloak v. 12.x
Seadistamisel tuleb Wordpress ja Keycloak webgui liideste vahel mõned korrad vaheldumisi liikuda, see võib esmapilgul tunduda kohmakas ja segadust tekitav. Seejuures teatud 'Test xxx' nuppude pressimine ei anna ootuspärast tulemust. Tundub, et seda saab ignoreerida.
Wordpress paigaldamine
Docker-compose seadistamine
root@docker:~/wp2# pwd /root/wp2 root@docker:~/wp2# cat docker-compose.yml version: '3.1' services: wordpress: image: wordpress:5.9.3-php8.1-apache restart: always ports: - 8686:80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: parool WORDPRESS_DB_NAME: exampledb volumes: - wordpress2:/var/www/html db: image: mysql:5.7 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: parool MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - db2:/var/lib/mysql volumes: wordpress2: db2:
kus
- TODO
Esmakordne käivitamine
root@docker:~/wp2# docker-compose up
Tulemusena töötavad kaks konteinerit: mysql ja wordpress. Aadressil http://192.168.110.221:8686/ on ligipääsetav Wordpress installer, see tuleb läbida järgmisena. Kokkuvõttes on kasutada paigaldatud ja seadistatud Wordpress rakendus tavalisel viisil.
Järgmised käivitamised
TODO
Keycloak paigaldamine
Keycloak v. 12.0 paigaldamiseks ja käivitamiseks sobib öelda
# docker run -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=parool -p 8080:8080 --name=keycloak jboss/keycloak:12.0.4
kus
- TODO
Tulemusena saab logida sisse aadressil http://192.168.110.221:8181/auth/
Administration Console
Wordpress ja Keycloak integratsioon
Wordpress ja Keycloak integratsioon toimub webgui liidestes.
Keycloak ettevalmistamine
TODO
Lisada uus Realm
- Add realm - 'realm_wp2'
- Roles -> Add Role -> 'editor'
- Users -> Add user -> Username - priit, Email - priit@xxx, Fist Name - xxx Last Name - xxx
- Users -> priit -> Credentials -> Password - xxx, Password Confirmation - xxx, Temporary - off
- Users -> priit -> Role Mapping -> lisada kasutajale 'editor' roll
- Groups -> Add new -> 'group_wp2'
- User -> Groups -> lisada kasutajale grupp 'group_wp2'
- Client -> Add Client -> Client ID - 'client_wp2', Client Protocol - 'openid-connect'
- Client -> 'client_wp2' -> Settings -> Access-Type - confidential
- Client -> 'client_wp2' -> Settings -> Valid Redirect URIs - see väärtus vaadatakse Wordpress 'Callback URL' lahtrist (vt 'Wordpress ettevalmistamine' punkti) -> Save
- Client -> 'client_wp' -> Settings -> Mappers -> Name - mapper_wp2, Mapper Type - Group Membership, Full group path - off, Add to ID token - off, Add to access token - off -> Save
Seejärel jätkata Wordpress plugin seadistamist.
Wordpress ettevalmistamine
oauth plugin lisamiseks on sobiv avada
Plugins -> Add New -> 'OAuth Single Sign On – SSO (OAuth Client) by miniOrange' -> Install Now, Activate, otsida keycloak ja lisada
Wordpress keycloak plugin seadistamine
- Setting up a Relying Party -> Callback URL - wordpress ütleb, et see on 'http://192.168.110.221:8686' ja see väärtus kopeeritakse Keycloak webgui liideses asukohta 'Valid Redirect URIs'
Peale Keycloak ettevalmistamist jätakase Wordpress plugin seadistamist
- Provider Metadata -> App name - keycloak
- Provider Metadata -> Doamin - http://192.168.110.221:8181/
- Provider Metadata -> Realm - realm_wp2
ning
- Client Credentials Setup -> Client ID - client_wp2
- Client Credentials Setup -> Client Secret - vaadata keycloak juures avades Client -> 'client_wp2' -> Settings -> Credentials - Secret
- Client Credentials Setup -> Client Scopes - openid, email, profile (default)
- pressida Finish
Seejärel pressida WP plugin webgui liideses
- Attribute/Role Mapping -> Username - 'name' -> Save
Tulemusena peab saama worpress webgui peale sisse logida keycloak kasutajana
- http://192.168.110.221:8686/wp-login.php
- Login with Keycloak
Probleemid
- väljalogimine ei tööta - välja logimiseks sobib esmalt kustutada Keycloak webgui liideses kasutaja sessioon (Users -> priit -> Sessions -> delete) ja seejärel wp webgui liideses Logout
Kasulikud lisamaterjalid
- TODO