управление_доступом_в_kubernetes

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
управление_доступом_в_kubernetes [2025/12/19 07:13]
val
управление_доступом_в_kubernetes [2026/03/20 20:59] (current)
val [Шаг 7. Использование OpenID Connect]
Line 47: Line 47:
  
   * Linux [[Инсталяция системы в конфигурации Desktop]] и [[Решение FreeIPA#​Установка и инициализация клиента]] FreeIPA   * Linux [[Инсталяция системы в конфигурации Desktop]] и [[Решение FreeIPA#​Установка и инициализация клиента]] FreeIPA
 +
 +  * [[Система Kubernetes#​Oбзор ресурсов кластера и действий над ними]]
  
 ===== Шаг 2. Создание учетной записи ===== ===== Шаг 2. Создание учетной записи =====
  
-==== Вариант 2.1 Использование сертификатов ​====+=== Вариант 2.1 Использование сертификатов ===
  
 +  * Изучаем файл конфигурации
 <​code>​ <​code>​
 kube1:~# cat ~/​.kube/​config kube1:~# cat ~/​.kube/​config
Line 66: Line 69:
   * [[Система Kubernetes#​Использование сертификатов]]   * [[Система Kubernetes#​Использование сертификатов]]
  
-==== Вариант 2.2 Использование ServiceAccount ​====+=== Вариант 2.2 Использование ServiceAccount ===
  
-  * Для примера можно использовать ServiceAccout из темы [[Система Kubernetes#​Kubernetes Dashboard]] в Namespace default +  * Для примераможно использовать ServiceAccout из темы [[Система Kubernetes#​Kubernetes Dashboard]] в Namespace default, создавая файлы в каталоге users 
-  * Показать временные и long-lived Bearer Token для ​ServiceAccount+  * Показать временные и long-lived Bearer Token из ServiceAccount
  
 ==== Шаг 2.3 Создание файла конфигурации kubectl ====  ==== Шаг 2.3 Создание файла конфигурации kubectl ==== 
Line 97: Line 100:
  
 ===== Шаг 5. Использование JSON Web Token (JWT) для доступа в Kubernetes ===== ===== Шаг 5. Использование JSON Web Token (JWT) для доступа в Kubernetes =====
 +
 +<​code>​
 +user1@client1:​~$ rm -rf .kube/
 +</​code>​
  
   * Возвращаемся на [[#​Вариант 2.2 Использование ServiceAccount]]   * Возвращаемся на [[#​Вариант 2.2 Использование ServiceAccount]]
Line 152: Line 159:
 ===== Шаг 7. Использование OpenID Connect ===== ===== Шаг 7. Использование OpenID Connect =====
  
-  * [[Сервис Keycloak]] +  * Сервис Keycloak ​[[Сервис Keycloak#​Аутентификация пользователей WEB приложения]] 
 +  * [[Сервис Keycloak#​Проверка получения токена]] и наличия в нем списка групп 
 +  
 +  * Настройка oidc в kube-apiserver (параметра client-secret нет и не требуется)
 <​code>​ <​code>​
 kube1:​~/​users#​ vim /​etc/​kubernetes/​manifests/​kube-apiserver.yaml kube1:​~/​users#​ vim /​etc/​kubernetes/​manifests/​kube-apiserver.yaml
Line 172: Line 181:
 kube1:~# ps ax | grep kube-apiserver kube1:~# ps ax | grep kube-apiserver
  
-kube1:~/users# kubectl -n kube-system logs Pod/​kube-apiserver-kube1+kube1:~# journalctl -f | grep kube-apiserver 
 + 
 +kube1/2:~# kubectl -n kube-system logs Pod/​kube-apiserver-kube1 
 +... 
 +Error: unknown flag: --oidc-client-secret
 ... ...
 E1203 05:​22:​46.412571 ​      1 authentication.go:​73] "​Unable to authenticate the request"​ err="​[invalid bearer token, oidc: verify token: oidc: expected audience \"​any-client\"​ got [\"​account\"​]]"​ E1203 05:​22:​46.412571 ​      1 authentication.go:​73] "​Unable to authenticate the request"​ err="​[invalid bearer token, oidc: verify token: oidc: expected audience \"​any-client\"​ got [\"​account\"​]]"​
Line 180: Line 193:
 </​code>​ </​code>​
  
-  * Открываем браузер +  * [[Система ​Kubernetes#​Создание файла ​конфигурации kubectl]] c полученным токеном 
-  * Подколючемся к giltab через keycloak+
 <​code>​ <​code>​
 +client1:~# wget https://​github.com/​int128/​kubelogin/​releases/​download/​v1.35.0/​kubelogin_linux_amd64.zip
 +
 +client1:~# unzip kubelogin_linux_amd64.zip
 +
 +client1:~# mv kubelogin /​usr/​local/​bin/​
 +
 +user1@client1:​~$ cat .kube/​config
 +</​code><​code>​
 +...
 +users:
 +- name: user1
 +  user:
 +    auth-provider:​
 +      config:
 +        client-id: any-client
 +        client-secret:​ anystring
 +        grant-type: password
 +        #​id-token: ​
 +        idp-issuer-url:​ https://​keycloak.corp13.un/​realms/​corp13
 +        #​refresh-token: ​
 +      name: oidc
 +</​code><​code>​
 user1@client1:​~$ kubelogin user1@client1:​~$ kubelogin
  
управление_доступом_в_kubernetes.1766117620.txt.gz · Last modified: 2025/12/19 07:13 by val