Keycloak: erinevus redaktsioonide vahel
Resümee puudub |
|||
(ei näidata sama kasutaja 10 vahepealset redaktsiooni) | |||
11. rida: | 11. rida: | ||
* wordpress v. 5.9 |
* wordpress v. 5.9 |
||
* keycloak v. 12.x |
* keycloak v. 12.x |
||
+ | * wordpress miniorange oauth-keycloak pluginat - tundub, et tasuta juhul on võimalik samaaegselt kasutada ühte iDP teenusepakkujat st keycloak'i |
||
+ | |||
+ | 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=== |
===Wordpress paigaldamine=== |
||
71. rida: | 74. rida: | ||
===Keycloak paigaldamine=== |
===Keycloak paigaldamine=== |
||
+ | |||
+ | ====Variatsioon 1==== |
||
Keycloak v. 12.0 paigaldamiseks ja käivitamiseks sobib öelda |
Keycloak v. 12.0 paigaldamiseks ja käivitamiseks sobib öelda |
||
83. rida: | 88. rida: | ||
Administration Console |
Administration Console |
||
+ | |||
+ | ====Variatsioon 2==== |
||
+ | |||
+ | Kasutada sellist docker-compose seadistusfaili |
||
+ | |||
+ | <pre> |
||
+ | version: '2' |
||
+ | |||
+ | services: |
||
+ | postgres: |
||
+ | image: postgres:13.2 |
||
+ | restart: unless-stopped |
||
+ | environment: |
||
+ | POSTGRES_DB: db_kc |
||
+ | POSTGRES_USER: user_kc |
||
+ | POSTGRES_PASSWORD: password_kc |
||
+ | networks: |
||
+ | - local-keycloak |
||
+ | |||
+ | keycloak: |
||
+ | depends_on: |
||
+ | - postgres |
||
+ | container_name: local_keycloak |
||
+ | environment: |
||
+ | DB_VENDOR: postgres |
||
+ | DB_ADDR: postgres |
||
+ | DB_DATABASE: db_kc |
||
+ | DB_USER: user_kc |
||
+ | DB_PASSWORD: password_kc |
||
+ | KEYCLOAK_USER: admin |
||
+ | KEYCLOAK_PASSWORD: parool |
||
+ | image: jboss/keycloak:12.0.4 |
||
+ | ports: |
||
+ | - "8484:8080" |
||
+ | restart: unless-stopped |
||
+ | networks: |
||
+ | - local-keycloak |
||
+ | |||
+ | networks: |
||
+ | local-keycloak: |
||
+ | </pre> |
||
+ | |||
+ | kus |
||
+ | |||
+ | * TODO |
||
+ | |||
+ | Käivitamiseks öelda docker-compose faili kataloogis |
||
+ | |||
+ | # docker compose up |
||
+ | |||
+ | Tulemusena tekib kaks konteinerit. Kui brauseriga pöörduda keycloak haldusliidese poole, saab teate |
||
+ | |||
+ | <pre> |
||
+ | We are sorry… |
||
+ | HTTPS required |
||
+ | </pre> |
||
+ | |||
+ | Selle vastu aitab öelda keycloak konteineri sees |
||
+ | |||
+ | <pre> |
||
+ | docker exec -it {containerID} bash |
||
+ | cd /opt/jboss/keycloak/bin |
||
+ | ./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin |
||
+ | ./kcadm.sh update realms/master -s sslRequired=NONE |
||
+ | </pre> |
||
+ | |||
+ | Kusjuures pärast tuleb analoogselt öelda update käsk kasutades lisatud wordpress kasutajate autentimisega tegeleva realm nime. |
||
===Wordpress ja Keycloak integratsioon=== |
===Wordpress ja Keycloak integratsioon=== |
||
91. rida: | 163. rida: | ||
TODO |
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 |
||
+ | |||
+ | Tulemusena on kasutada kaks keycloak webgui liidest |
||
+ | |||
+ | * halduri liides - http://192.168.110.221:8181/auth/admin/ |
||
+ | * lõppkasutaja liides - http://192.168.110.221:8181/auth/realms/realm_wp2/account/ |
||
+ | |||
+ | Seejärel jätkata Wordpress plugin seadistamist. |
||
====Wordpress ettevalmistamine==== |
====Wordpress ettevalmistamine==== |
||
96. rida: | 189. rida: | ||
oauth plugin lisamiseks on sobiv avada |
oauth plugin lisamiseks on sobiv avada |
||
− | Plugins -> Add New -> 'OAuth Single Sign On – SSO (OAuth Client) by miniOrange' |
+ | 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 |
||
+ | |||
+ | Märkused |
||
+ | |||
+ | * kui juba töötavas süsteemis ringi klõpsida, siis mõned kohad, mis esmase seadistamise käigus ei paistnud töötavat, on hakanud käima nt |
||
+ | |||
+ | WP -> Plugins -> miniOrange -> Configure OAuth -> Attribute/Role Mapping -> Username - saab valida manual ja auto mode vahel, auto mode puhul on näha dropdown nimekirja võimalike väärtustega |
||
===Kasulikud lisamaterjalid=== |
===Kasulikud lisamaterjalid=== |
||
+ | * https://www.youtube.com/watch?v=w2_Dx8pd43w |
||
− | * TODO |
Viimane redaktsioon: 17. oktoober 2022, kell 10:53
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
- wordpress miniorange oauth-keycloak pluginat - tundub, et tasuta juhul on võimalik samaaegselt kasutada ühte iDP teenusepakkujat st keycloak'i
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
Variatsioon 1
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
Variatsioon 2
Kasutada sellist docker-compose seadistusfaili
version: '2' services: postgres: image: postgres:13.2 restart: unless-stopped environment: POSTGRES_DB: db_kc POSTGRES_USER: user_kc POSTGRES_PASSWORD: password_kc networks: - local-keycloak keycloak: depends_on: - postgres container_name: local_keycloak environment: DB_VENDOR: postgres DB_ADDR: postgres DB_DATABASE: db_kc DB_USER: user_kc DB_PASSWORD: password_kc KEYCLOAK_USER: admin KEYCLOAK_PASSWORD: parool image: jboss/keycloak:12.0.4 ports: - "8484:8080" restart: unless-stopped networks: - local-keycloak networks: local-keycloak:
kus
- TODO
Käivitamiseks öelda docker-compose faili kataloogis
# docker compose up
Tulemusena tekib kaks konteinerit. Kui brauseriga pöörduda keycloak haldusliidese poole, saab teate
We are sorry… HTTPS required
Selle vastu aitab öelda keycloak konteineri sees
docker exec -it {containerID} bash cd /opt/jboss/keycloak/bin ./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin ./kcadm.sh update realms/master -s sslRequired=NONE
Kusjuures pärast tuleb analoogselt öelda update käsk kasutades lisatud wordpress kasutajate autentimisega tegeleva realm nime.
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
Tulemusena on kasutada kaks keycloak webgui liidest
- halduri liides - http://192.168.110.221:8181/auth/admin/
- lõppkasutaja liides - http://192.168.110.221:8181/auth/realms/realm_wp2/account/
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
Märkused
- kui juba töötavas süsteemis ringi klõpsida, siis mõned kohad, mis esmase seadistamise käigus ei paistnud töötavat, on hakanud käima nt
WP -> Plugins -> miniOrange -> Configure OAuth -> Attribute/Role Mapping -> Username - saab valida manual ja auto mode vahel, auto mode puhul on näha dropdown nimekirja võimalike väärtustega