сервис_keycloak

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
сервис_keycloak [2025/11/14 14:29]
val [Kubernetes]
сервис_keycloak [2025/12/25 15:08] (current)
val [Kubernetes]
Line 149: Line 149:
   adminUser: admin   adminUser: admin
   adminPassword:​ strongpassword   adminPassword:​ strongpassword
-proxy: edge+#proxy: edge
 #​proxyHeaders:​ "​xforwarded"​ #​proxyHeaders:​ "​xforwarded"​
 ingress: ingress:
   enabled: true   enabled: true
   ingressClassName:​ nginx   ingressClassName:​ nginx
-  hostname: keycloak.corp13.un+  hostname: keycloak.corpX.un
 #  tls: true #  tls: true
 #  extraTls: #  extraTls:
 #  - hosts: #  - hosts:
-#    - keycloak.corp13.un+#    - keycloak.corpX.un
 #    secretName: keycloak-tls #    secretName: keycloak-tls
  
Line 182: Line 182:
 #  password: strongpassword #  password: strongpassword
  
-#​extraVolumeMounts:​ +###​extraVolumeMounts:​ 
-#- mountPath: /​opt/​bitnami/​keycloak/​themes +###- mountPath: /​opt/​bitnami/​keycloak/​themes 
-#  name: themes +###  name: themes 
-#​extraVolumes:​ +###​extraVolumes:​ 
-#- emptyDir: {} +###- emptyDir: {} 
-#  name: themes+###  name: themes
  
 #​initContainers:​ #​initContainers:​
Line 201: Line 201:
 #  volumeMounts:​ #  volumeMounts:​
 #  - mountPath: /​opt/​bitnami/​keycloak/​themes #  - mountPath: /​opt/​bitnami/​keycloak/​themes
-#    name: themes+###    name: themes 
 +#    name: empty-dir 
 +#    subPath: app-themes-dir 
 </​code><​code>​ </​code><​code>​
 ~/keycloak$ ###helm template my-keycloak -f values.yaml oci://​registry-1.docker.io/​bitnamicharts/​keycloak -n my-keycloak-ns --version $KC_HC_VER | less ~/keycloak$ ###helm template my-keycloak -f values.yaml oci://​registry-1.docker.io/​bitnamicharts/​keycloak -n my-keycloak-ns --version $KC_HC_VER | less
Line 211: Line 214:
 ~/keycloak# kubectl -n my-keycloak-ns logs statefulsets/​my-keycloak -f ~/keycloak# kubectl -n my-keycloak-ns logs statefulsets/​my-keycloak -f
  
-~/keycloak$ curl -v http://​kubeN/​ -H "Host: keycloak.corp13.un"+~/keycloak$ curl -v http://​kubeN/​ -H "Host: keycloak.corpX.un"
  
 ~/keycloak$ ###kubectl -n my-keycloak-ns exec -ti my-keycloak-postgresql-0 -- psql -U postgres ~/keycloak$ ###kubectl -n my-keycloak-ns exec -ti my-keycloak-postgresql-0 -- psql -U postgres
Line 232: Line 235:
 <​code>​ <​code>​
 Create Realm->​corpX Create Realm->​corpX
 +
   Users   Users
     Add User     Add User
-      user1/​kcpassword1 +      user1/​kcpassword1 ​(Temporary: off) 
-      В новых версиях ​надо ФИО и email, иначе Account is not fully set up+      В новых версиях ​обязательно ФИО и email, иначеAccount is not fully set up 
 + 
 +  Realm settings 
 +    Theme->​Login theme->​mytheme
 </​code>​ </​code>​
  
Line 244: Line 251:
  
 ===== Аутентификация пользователей WEB приложения ===== ===== Аутентификация пользователей WEB приложения =====
 +
 +  * [[https://​www.keycloak.org/​securing-apps/​oidc-layers]]
  
 <​code>​ <​code>​
Line 257: Line 266:
 может понадобиться включить может понадобиться включить
     Direct access grants     Direct access grants
 +    ​
 +для передачи списка групп в токене понадобится:​
 +Client scopes -> 
 +  Create client scope -> Name: groups
 +    Configure a new mapper: Groups Membership
 +      Name: groups
 +    Configure a new mapper: Audience ​ !!! Для "​подсовывания"​ токена в .kube/​config
 +   Name (и везде):​ any-client
 +
 +Clients -> any-client
 +  Client scopes
 +  Add client scopes to any-client: groups
 +  Add: Default
 +  ​
 +Include in token scope ?
 +  ​
 +Add to lightweight access token ?
 +
 +Token Claim Name: groups
 +Full group path: No
 </​code>​ </​code>​
  
-==== Проверка ====+==== Проверка получения токена ====
  
   * [[Материалы по Windows#​Windows CA для Linux сервисов]]   * [[Материалы по Windows#​Windows CA для Linux сервисов]]
Line 272: Line 301:
      -d "​username=user1"​ \      -d "​username=user1"​ \
      -d '​password=kcpassword1'​ \      -d '​password=kcpassword1'​ \
-     ​https://​keycloak.corp13.un/realms/corp13/​protocol/​openid-connect/​token+     ​https://​keycloak.corpX.un/realms/corpX/​protocol/​openid-connect/​token
            
 {"​access_token":"​..."​ ... {"​access_token":"​..."​ ...
 </​code>​ </​code>​
  
-  * [[https://​jwt.io/​|JWT.IO allows you to decode, verify and generate JWT]] +  * [[https://​jwt.io/​|JWT.IO allows you to decode, verify and generate JWT]] 
 + 
 +=== Проверка подписи JWT === 
 + 
 +  * https://​keycloak.corpX.un/​realms/​corpX/​protocol/​openid-connect/​certs 
 + 
 +<​code>​ 
 +-----BEGIN CERTIFICATE----- 
 +... 
 +-----END CERTIFICATE----- 
 +</​code>​
  
 === Apache CGI приложение === === Apache CGI приложение ===
Line 336: Line 375:
  
 === FreeIPA === === FreeIPA ===
 +
 +  * [[https://​itdraft.ru/​2023/​03/​01/​nastrojka-oauth-avtorizacii-cherez-keycloak-freeipa-v-dokuwiki/​|Настройка oAuth авторизации через Keycloak+FreeIPA в DokuWiki]]
 +
 <​code>​ <​code>​
 Vendor: Other Vendor: Other
Line 344: Line 386:
   или, для выгрузки email   или, для выгрузки email
 Bind type: simple Bind type: simple
-Bind DN: uid=admin,​cn=users,​cn=accounts,​dc=corp13,dc=un+Bind DN: uid=admin,​cn=users,​cn=accounts,​dc=corpX,dc=un
  
 Edit mode: READ_ONLY Edit mode: READ_ONLY
  
-Users DN: cn=users,​cn=compat,​dc=corpX,​dc=un+#Users DN: cn=users,​cn=compat,​dc=corpX,​dc=un
 Users DN: cn=users,​cn=accounts,​dc=corpX,​dc=un Users DN: cn=users,​cn=accounts,​dc=corpX,​dc=un
 ... ...
Line 355: Line 397:
 RDN LDAP attribute: uid RDN LDAP attribute: uid
 ... ...
-UUID LDAP attribute: ipaAnchorUUID +#UUID LDAP attribute: ipaAnchorUUID 
-UUID LDAP attribute: uid+#UUID LDAP attribute: uid 
 +UUID LDAP attribute: ipaUniqueID 
 + 
 +Mappers ->  
 + 
 +  Name: first name 
 +  LDAP Attribute: givenname 
 + 
 +  Name: groups 
 +  Mapper type: group-ldap-mapper 
 +  LDAP Groups DN: cn=groups,​cn=accounts,​dc=corpX,​dc=un 
 +  Relative creation DN: cn 
 +  Group Name LDAP Attribute: cn 
 </​code>​ </​code>​
  
сервис_keycloak.1763119748.txt.gz · Last modified: 2025/11/14 14:29 by val