User Tools

Site Tools


управление_доступом_в_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 06:13]
val
управление_доступом_в_kubernetes [2026/01/13 09:39] (current)
val [Шаг 7. Использование OpenID Connect]
Line 15: Line 15:
   * [[https://​medium.com/​@subhampradhan966/​implementing-and-verifying-kubernetes-service-accounts-a-step-by-step-guide-c43b727260b2|Implementing and Verifying Kubernetes Service Accounts: A Step-by-Step Guide]]   * [[https://​medium.com/​@subhampradhan966/​implementing-and-verifying-kubernetes-service-accounts-a-step-by-step-guide-c43b727260b2|Implementing and Verifying Kubernetes Service Accounts: A Step-by-Step Guide]]
  
- +  * [[https://​medium.com/​@amirhosseineidy/​kubernetes-authentication-with-keycloak-oidc-63571eaeed61|Kubernetes authentication with keycloak oidc]] 
 +  * [[https://​vlasov.pro/​ru/​p/​kubernetes-oidc/​|Kubernetes авторизация через OIDC]] 
 +  * [[https://​timeweb.cloud/​docs/​k8s/​connect-oidc-provider-to-cluster|Подключение OIDC-провайдера к кластеру]] 
 +  * [[https://​www.talkingquickly.co.uk/​setting-up-oidc-login-kubernetes-kubectl-with-keycloak|OIDC Login to Kubernetes and Kubectl with Keycloak]] 
 +  * [[https://​github.com/​int128/​kubelogin|kubelogin - This is a kubectl plugin for Kubernetes OpenID Connect]]
  
 ===== Реклама ===== ===== Реклама =====
Line 101: Line 104:
  
 kube1:​~/​users#​ kubectl delete serviceaccounts admin-user kube1:​~/​users#​ kubectl delete serviceaccounts admin-user
 +
 +user1@client1:​~$ rm -rf .kube/
 </​code>​ </​code>​
 ===== Шаг 6. Использование Service Accounts в приложениях ===== ===== Шаг 6. Использование Service Accounts в приложениях =====
Line 147: Line 152:
 ===== Шаг 7. Использование OpenID Connect ===== ===== Шаг 7. Использование OpenID Connect =====
  
-==== Демонстрация OIDC ====+  * Сервис Keycloak [[Сервис Keycloak#​Аутентификация пользователей WEB приложения]] 
 +  * !!! в конфигурации kube-apiserver параметра client-secret нет и не требуется !!! 
 +<​code>​ 
 +kube1:​~/​users#​ vim /​etc/​kubernetes/​manifests/​kube-apiserver.yaml 
 +</​code><​code>​ 
 +... 
 +spec: 
 +  containers:​ 
 +  - command: 
 +    - kube-apiserver 
 +    - --oidc-issuer-url=https://​keycloak.corpX.un/​realms/​corpX 
 +    #- --oidc-client-id=account 
 +    - --oidc-client-id=any-client 
 +    - --oidc-username-claim=email 
 +    #- --oidc-username-claim=preferred_username 
 +    - --oidc-groups-claim=groups 
 +... 
 +</​code><​code>​ 
 +kube1:~# ps ax | grep kube-apiserver 
 + 
 +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\"​]]"​ 
 +... 
 +E1218 10:​36:​21.105422 ​      1 authentication.go:​75] "​Unable to authenticate the request"​ err="​[invalid bearer token, oidc: email not verified]"​ 
 +... 
 +</​code>​ 
 + 
 +  * [[Сервис Keycloak#​Проверка получения токена]] Keycloak  
 +  * [[Система 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.1766114001.txt.gz · Last modified: 2025/12/19 06:13 by val