{"id":70867,"date":"2020-02-22T06:40:58","date_gmt":"2020-02-22T03:40:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/prikruchivaem-ldap-avtorizacziyu-k-kubernetes"},"modified":"2020-03-03T16:14:36","modified_gmt":"2020-03-03T13:14:36","slug":"prikruchivaem-ldap-avtorizacziyu-k-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/prikruchivaem-ldap-avtorizacziyu-k-kubernetes","title":{"rendered":"Nous int\u00e9grons l'authentification LDAP \u00e0 Kubernetes.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Nous int\u00e9grons l&#039;authentification LDAP \u00e0 Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/2b0f0a4921e049a78a015e7693d697cf.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Un petit guide sur la fa\u00e7on d'utiliser Keycloak pour relier Kubernetes \u00e0 votre serveur LDAP et configurer l'importation d'utilisateurs et de groupes. Cela permettra de configurer le RBAC pour vos utilisateurs et d'utiliser un auth-proxy pour s\u00e9curiser le tableau de bord Kubernetes et d'autres applications qui ne peuvent pas s'authentifier elles-m\u00eames.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"ustanovka-keycloak\">Installation de Keycloak<\/h2>\n<p><\/p>\n<p>Supposons que vous avez d\u00e9j\u00e0 un serveur LDAP. Cela peut \u00eatre Active Directory, FreeIPA, OpenLDAP ou autre chose. Si vous n'avez pas de serveur LDAP, vous pouvez en principe cr\u00e9er des utilisateurs directement dans l'interface de Keycloak, ou utiliser des fournisseurs oidc publics (Google, Github, Gitlab), le r\u00e9sultat sera presque le m\u00eame.<\/p>\n<p><\/p>\n<p>D'abord, installez Keycloak lui-m\u00eame, l'installation peut se faire s\u00e9par\u00e9ment ou directement dans le cluster Kubernetes, en g\u00e9n\u00e9ral, si vous avez plusieurs clusters Kubernetes, il serait plus facile de l'installer s\u00e9par\u00e9ment. D'autre part, vous pouvez toujours utiliser <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/stable\/keycloak\">le chart helm officiel<\/a><\/noindex> et l'installer directement dans votre cluster.<\/p>\n<p><\/p>\n<p>Pour stocker les donn\u00e9es de Keycloak, vous aurez besoin d'une base de donn\u00e9es. Par d\u00e9faut, on utilise <code>h2<\/code> (toutes les donn\u00e9es sont stock\u00e9es localement), mais vous pouvez \u00e9galement utiliser <code>postgres<\/code>, <code>mysql<\/code> ou <code>mariadb<\/code>.<br \/>\nSi vous avez d\u00e9cid\u00e9 d'installer Keycloak s\u00e9par\u00e9ment, des instructions plus d\u00e9taill\u00e9es se trouvent dans <noindex><a rel=\"nofollow\" href=\"https:\/\/www.keycloak.org\/docs\/latest\/getting_started\/index.html\">la documentation officielle<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-federacii\">Configuration de la f\u00e9d\u00e9ration<\/h2>\n<p><\/p>\n<p>Tout d'abord, cr\u00e9ons un nouveau royaume. Un royaume est l'espace de notre application. Chaque application peut avoir son propre royaume avec diff\u00e9rents utilisateurs et param\u00e8tres d'autorisation. Le royaume ma\u00eetre est utilis\u00e9 par Keycloak lui-m\u00eame et il est incorrect de l'utiliser pour autre chose.<\/p>\n<p><\/p>\n<p>Cliquez <strong>Ajouter un royaume<\/strong><\/p>\n<p><\/p>\n<p>Option<br \/>\nValeur<\/p>\n<p><strong>Nom<\/strong><br \/>\n<code>kubernetes<\/code><\/p>\n<p><strong>Nom d'affichage<\/strong><br \/>\n<code>Kubernetes<\/code><\/p>\n<p><strong>Nom d'affichage HTML<\/strong><br \/>\n<code>&lt;img src=&quot;https:\/\/kubernetes.io\/images\/nav_logo.svg&quot; width=&quot;400&quot; &gt;<\/code><\/p>\n<p><\/p>\n<p>Kubernetes v\u00e9rifie par d\u00e9faut si l'email de l'utilisateur est confirm\u00e9 ou non. Comme nous utilisons notre propre serveur LDAP, cette v\u00e9rification renverra presque toujours <code>faux<\/code>. D\u00e9sactivons l'affichage de ce param\u00e8tre dans Kubernetes :<\/p>\n<p><\/p>\n<p><strong>Client scopes<\/strong> --&gt; <strong>Email<\/strong> --&gt; <strong>Mappers<\/strong> --&gt; <strong>Email v\u00e9rifi\u00e9<\/strong> (Supprimer)<\/p>\n<p><\/p>\n<p>Nous allons maintenant configurer la f\u00e9d\u00e9ration, pour cela allons dans :<\/p>\n<p><\/p>\n<p><strong>F\u00e9d\u00e9ration d'utilisateurs<\/strong> --&gt; <strong>Ajouter un fournisseur\u2026<\/strong> --&gt; <strong>ldap<\/strong><\/p>\n<p><\/p>\n<p>Voici un exemple de configuration pour FreeIPA :<\/p>\n<p><\/p>\n<p>Option<br \/>\nValeur<\/p>\n<p><strong>Nom d'affichage de la console<\/strong><br \/>\n<code>freeipa.example.org<\/code><\/p>\n<p><strong>Fournisseur<\/strong><br \/>\n<code>Red Hat Directory Server<\/code><\/p>\n<p><strong>Attribut LDAP UUID<\/strong><br \/>\n<code>ipauniqueid<\/code><\/p>\n<p><strong>URL de connexion<\/strong><br \/>\n<code>ldaps:\/\/freeipa.example.org<\/code><\/p>\n<p><strong>DN des utilisateurs<\/strong><br \/>\n<code>cn=users,cn=accounts,dc=example,dc=org<\/code><\/p>\n<p><strong>DN de liaison<\/strong><br \/>\n<code>uid=keycloak-svc,cn=users,cn=accounts,dc=example,dc=org<\/code><\/p>\n<p><strong>Informations d'identification de liaison<\/strong><br \/>\n<code>&lt;password&gt;<\/code><\/p>\n<p><strong>Autoriser l'authentification Kerberos :<\/strong><br \/>\n<code>on<\/code><\/p>\n<p><strong>Royaume Kerberos :<\/strong><br \/>\n<code>EXAMPLE.ORG<\/code><\/p>\n<p><strong>Principal du serveur :<\/strong><br \/>\n<code>HTTP\/freeipa.example.org@EXAMPLE.ORG<\/code><\/p>\n<p><strong>KeyTab :<\/strong><br \/>\n<code>\/etc\/krb5.keytab<\/code><\/p>\n<p><\/p>\n<p>L'utilisateur <code>keycloak-svc<\/code> doit \u00eatre cr\u00e9\u00e9 \u00e0 l'avance sur notre serveur LDAP.<\/p>\n<p><\/p>\n<p>Dans le cas d'Active Directory, il suffit de choisir <strong>Fournisseur : Active Directory<\/strong> Et les param\u00e8tres n\u00e9cessaires seront automatiquement remplis dans le formulaire.<\/p>\n<p><\/p>\n<p>Cliquez <strong>Sauvegarder<\/strong><\/p>\n<p><\/p>\n<p>Passons maintenant \u00e0 :<\/p>\n<p><\/p>\n<p><strong>F\u00e9d\u00e9ration d'utilisateurs<\/strong> --&gt; <strong>freeipa.example.org<\/strong> --&gt; <strong>Mappers<\/strong> --&gt; <strong>Pr\u00e9nom<\/strong><\/p>\n<p><\/p>\n<p>Option<br \/>\nValeur<\/p>\n<p><strong>Attribut LDAP<\/strong><br \/>\n<code>givenName<\/code><\/p>\n<p><\/p>\n<p>Nous allons maintenant activer le mappage des groupes :<\/p>\n<p><\/p>\n<p><strong>F\u00e9d\u00e9ration d'utilisateurs<\/strong> --&gt; <strong>freeipa.example.org<\/strong> --&gt; <strong>Mappers<\/strong> --&gt; <strong>Cr\u00e9er<\/strong><\/p>\n<p><\/p>\n<p>Option<br \/>\nValeur<\/p>\n<p><strong>Nom<\/strong><br \/>\n<code>groups<\/code><\/p>\n<p><strong>Type de mappeur<\/strong><br \/>\n<code>group-ldap-mapper<\/code><\/p>\n<p><strong>DN des groupes LDAP<\/strong><br \/>\n<code>cn=groups,cn=accounts,dc=example,dc=org<\/code><\/p>\n<p><strong>Strat\u00e9gie de r\u00e9cup\u00e9ration des groupes d'utilisateurs<\/strong><br \/>\n<code>GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE<\/code><\/p>\n<p><\/p>\n<p>La configuration de la f\u00e9d\u00e9ration est maintenant termin\u00e9e, passons \u00e0 la configuration du client.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-klienta\">Configuration du client<\/h2>\n<p><\/p>\n<p>Cr\u00e9ons un nouveau client (une application qui r\u00e9cup\u00e9rera les utilisateurs de Keycloak). Passons \u00e0 :<\/p>\n<p><\/p>\n<p><strong>Clients<\/strong> --&gt; <strong>Cr\u00e9er<\/strong><\/p>\n<p><\/p>\n<p>Option<br \/>\nValeur<\/p>\n<p><strong>ID Client<\/strong><br \/>\n<code>kubernetes<\/code><\/p>\n<p><strong>Type d'acc\u00e8s<\/strong><br \/>\n<code>confidenrial<\/code><\/p>\n<p><strong>URL racine<\/strong><br \/>\n<code>http:\/\/kubernetes.example.org\/<\/code><\/p>\n<p><strong>URIs de redirection valides<\/strong><br \/>\n<code>http:\/\/kubernetes.example.org\/*<\/code><\/p>\n<p><strong>URL d'administration<\/strong><br \/>\n<code>http:\/\/kubernetes.example.org\/<\/code><\/p>\n<p><\/p>\n<p>Nous allons \u00e9galement cr\u00e9er un scope pour les groupes :<\/p>\n<p><\/p>\n<p><strong>Scopes de client<\/strong> --&gt; <strong>Cr\u00e9er<\/strong><\/p>\n<p><\/p>\n<p>Option<br \/>\nValeur<\/p>\n<p><strong>Mod\u00e8le<\/strong><br \/>\n<code>Aucun mod\u00e8le<\/code><\/p>\n<p><strong>Nom<\/strong><br \/>\n<code>groups<\/code><\/p>\n<p><strong>Chemin complet du groupe<\/strong><br \/>\n<code>faux<\/code><\/p>\n<p><\/p>\n<p>Et nous configurerons un mappeur pour eux :<\/p>\n<p><\/p>\n<p><strong>Scopes de client<\/strong> --&gt; <strong>groups<\/strong> --&gt; <strong>Mappers<\/strong> --&gt; <strong>Cr\u00e9er<\/strong><\/p>\n<p><\/p>\n<p>Option<br \/>\nValeur<\/p>\n<p><strong>Nom<\/strong><br \/>\n<code>groups<\/code><\/p>\n<p><strong>Type de mappeur<\/strong><br \/>\n<code>Adh\u00e9sion au groupe<\/code><\/p>\n<p><strong>Nom de la r\u00e9clamation de jeton<\/strong><br \/>\n<code>groups<\/code><\/p>\n<p><\/p>\n<p>Nous devons maintenant activer le mappage des groupes dans notre scope de client :<\/p>\n<p><\/p>\n<p><strong>Clients<\/strong> --&gt; <strong>kubernetes<\/strong> --&gt; <strong>Scopes de client<\/strong> --&gt; <strong>Scopes de client par d\u00e9faut<\/strong><\/p>\n<p><\/p>\n<p>S\u00e9lectionnez <strong>groups<\/strong> dans <strong>Scopes de client disponibles<\/strong>, cliquez sur <strong>Ajouter les s\u00e9lectionn\u00e9s<\/strong><\/p>\n<p><\/p>\n<p>Nous allons maintenant configurer l'authentification de notre application, passons \u00e0 :<\/p>\n<p><\/p>\n<p><strong>Clients<\/strong> --&gt; <strong>kubernetes<\/strong><\/p>\n<p><\/p>\n<p>Option<br \/>\nValeur<\/p>\n<p><strong>Autorisation activ\u00e9e<\/strong><br \/>\n<code>ACTIVER<\/code><\/p>\n<p><\/p>\n<p>Cliquez sur <strong>sauvegarder<\/strong> et avec cela, la configuration du client est termin\u00e9e, maintenant sur l'onglet<\/p>\n<p><\/p>\n<p><strong>Clients<\/strong> --&gt; <strong>kubernetes<\/strong> --&gt; <strong>Identifiants<\/strong><\/p>\n<p><\/p>\n<p>vous pourrez obtenir <strong>Secret<\/strong> que nous utiliserons plus tard.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-kubernetes\">Configuration de Kubernetes<\/h2>\n<p><\/p>\n<p>La configuration de Kubernetes pour l'autorisation OIDC est assez triviale et n'est pas tr\u00e8s complexe. Tout ce que vous devez faire est de placer le certificat CA de votre serveur OIDC dans <code>\/etc\/kubernetes\/pki\/oidc-ca.pem<\/code> et d'ajouter les options n\u00e9cessaires pour kube-apiserver.<br \/>\nPour cela, mettez \u00e0 jour <code>\/etc\/kubernetes\/manifests\/kube-apiserver.yaml<\/code> sur tous vos ma\u00eetres :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">...\nspec:\n  containers:\n  - command:\n    - kube-apiserver\n...\n    - --oidc-ca-file=\\\/etc\\\/kubernetes\\\/pki\\\/oidc-ca.pem\n    - --oidc-client-id=kubernetes\n    - --oidc-groups-claim=groups\n    - --oidc-issuer-url=https:\\\/\\\/keycloak.example.org\\\/auth\\\/realms\\\/kubernetes\n    - --oidc-username-claim=email\n...<\/code><\/pre>\n<p><\/p>\n<p>Et mettez \u00e9galement \u00e0 jour la configuration kubeadm dans le cluster pour ne pas perdre ces param\u00e8tres lors de la mise \u00e0 jour :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl edit -n kube-system configmaps kubeadm-config<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\">...\ndata:\n  ClusterConfiguration: |\n    apiServer:\n      extraArgs:\n        oidc-ca-file: \\\/etc\\\/kubernetes\\\/pki\\\/oidc-ca.pem\n        oidc-client-id: kubernetes\n        oidc-groups-claim: groups\n        oidc-issuer-url: https:\\\/\\\/keycloak.example.org\\\/auth\\\/realms\\\/kubernetes\n        oidc-username-claim: email\n...<\/code><\/pre>\n<p><\/p>\n<p>La configuration de Kubernetes est maintenant termin\u00e9e. Vous pouvez r\u00e9p\u00e9ter ces actions dans tous vos clusters Kubernetes.<\/p>\n<p><\/p>\n<h2 id=\"nachalnaya-avtorizaciya\">Autorisation initiale<\/h2>\n<p><\/p>\n<p>Apr\u00e8s ces actions, vous aurez d\u00e9j\u00e0 un cluster Kubernetes avec une autorisation OIDC configur\u00e9e. Le seul point est que vos utilisateurs n'ont pas encore de client configur\u00e9 ni de kubeconfig propre. Pour r\u00e9soudre ce probl\u00e8me, vous devez configurer l'\u00e9mission automatique de kubeconfig aux utilisateurs apr\u00e8s une autorisation r\u00e9ussie.<\/p>\n<p><\/p>\n<p>Pour cela, vous pouvez utiliser des applications web sp\u00e9ciales qui permettent d'authentifier l'utilisateur puis de t\u00e9l\u00e9charger le kubeconfig pr\u00eat. L'une des plus pratiques est <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/negz\/kuberos\">Kuberos<\/a><\/noindex>, il permet de d\u00e9crire tous les clusters Kubernetes dans une seule configuration et de basculer facilement entre eux.<\/p>\n<p><\/p>\n<p>Pour configurer Kuberos, il suffit de d\u00e9crire le template pour kubeconfig et de l'ex\u00e9cuter avec les param\u00e8tres suivants :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kuberos https:\/\/keycloak.example.org\/auth\/realms\/kubernetes kubernetes \/cfg\/secret \/cfg\/template<\/code><\/pre>\n<p><\/p>\n<p>Pour plus d'informations d\u00e9taill\u00e9es, consultez <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/negz\/kuberos#usage\">Utilisation<\/a><\/noindex> sur Github.<\/p>\n<p><\/p>\n<p>Il est \u00e9galement possible d'utiliser <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/int128\/kubelogin\">kubelogin<\/a><\/noindex> si vous souhaitez effectuer l'authentification directement sur l'ordinateur de l'utilisateur. Dans ce cas, un navigateur s'ouvrira avec un formulaire d'authentification sur localhost.<\/p>\n<p><\/p>\n<p>Le kubeconfig obtenu peut \u00eatre v\u00e9rifi\u00e9 sur le site <noindex><a rel=\"nofollow\" href=\"https:\/\/jwt.io\/#debugger-io\">jwt.io<\/a><\/noindex>. Il suffit de copier la valeur <code>users[].user.auth-provider.config.id-token<\/code> de votre kubeconfig dans le formulaire sur le site pour obtenir instantan\u00e9ment le d\u00e9cryptage.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-rbac\">Configuration RBAC<\/h2>\n<p><\/p>\n<p>Lors de la configuration de RBAC, vous pouvez vous r\u00e9f\u00e9rer soit au nom d'utilisateur (champ <code>nom<\/code> dans le jeton jwt), soit au groupe d'utilisateurs (champ <code>groups<\/code> dans le jeton jwt). Voici un exemple de configuration des droits pour le groupe <code>kubernetes-default-namespace-admins<\/code>:<\/p>\n<p>\n<b class=\"spoiler_title\">kubernetes-default-namespace-admins.yaml<\/b><\/p>\n<pre><code class=\"plaintext\">apiVersion: rbac.authorization.k8s.io\/v1\nkind: Role\nmetadata:\n  name: default-admins\n  namespace: default\nrules:\n- apiGroups:\n  - '*'\n  resources:\n  - '*'\n  verbs:\n  - '*'\n---\napiVersion: rbac.authorization.k8s.io\/v1\nkind: RoleBinding\nmetadata:\n  name: kubernetes-default-namespace-admins\n  namespace: default\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: Role\n  name: default-admins\nsubjects:\n- apiGroup: rbac.authorization.k8s.io\n  kind: Group\n  name: kubernetes-default-namespace-admins<\/code><\/pre>\n<p><\/p>\n<p>D'autres exemples pour RBAC peuvent \u00eatre trouv\u00e9s dans <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/rbac\/\">la documentation officielle de Kubernetes<\/a><\/noindex><\/p>\n<p><\/p>\n<h2 id=\"nastroyka-auth-proxy\">Configuration de auth-proxy<\/h2>\n<p><\/p>\n<p>Il existe un projet formidable <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/keycloak\/keycloak-gatekeeper\">keycloak-gatekeeper<\/a><\/noindex>, qui permet de s\u00e9curiser n'importe quelle application en permettant \u00e0 l'utilisateur de s'authentifier sur un serveur OIDC. Je vais montrer comment le configurer \u00e0 l'aide de l'exemple Kubernetes Dashboard :<\/p>\n<p>\n<b class=\"spoiler_title\">dashboard-proxy.yaml<\/b><\/p>\n<pre><code class=\"plaintext\">apiVersion: extensions\/v1beta1\nkind: Deployment\nmetadata:\n  name: kubernetes-dashboard-proxy\nspec:\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        app: kubernetes-dashboard-proxy\n    spec:\n      containers:\n      - args:\n        - --listen=0.0.0.0:80\n        - --discovery-url=https:\/\/keycloak.example.org\/auth\/realms\/kubernetes\n        - --client-id=kubernetes\n        - --client-secret=\n        - --redirection-url=https:\/\/kubernetes-dashboard.example.org\n        - --enable-refresh-tokens=true\n        - --encryption-key=ooTh6Chei1eefooyovai5ohwienuquoh\n        - --upstream-url=https:\/\/kubernetes-dashboard.kube-system\n        - --resources=uri=\/*\n        image: keycloak\/keycloak-gatekeeper\n        name: kubernetes-dashboard-proxy\n        ports:\n        - containerPort: 80\n          livenessProbe:\n            httpGet:\n              path: \/oauth\/health\n              port: 80\n            initialDelaySeconds: 3\n            timeoutSeconds: 2\n          readinessProbe:\n            httpGet:\n              path: \/oauth\/health\n              port: 80\n            initialDelaySeconds: 3\n            timeoutSeconds: 2\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: kubernetes-dashboard-proxy\nspec:\n  ports:\n  - port: 80\n    protocol: TCP\n    targetPort: 80\n  selector:\n    app: kubernetes-dashboard-proxy\n  type: ClusterIP<\/code><\/pre>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/441112\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Keycloak \u043c\u043e\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c Kubernetes \u0441 \u0432\u0430\u0448\u0438\u043c LDAP-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u043c\u043f\u043e\u0440\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0433\u0440\u0443\u043f\u043f. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c RBAC \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c auth-proxy \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c Kubernetes Dashboard \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0443\u043c\u0435\u044e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Keycloak \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c LDAP-\u0441\u0435\u0440\u0432\u0435\u0440. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c Active [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":70868,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-70867","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/prikruchivaem-ldap-avtorizacziyu-k-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c LDAP-\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u043a Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/prikruchivaem-ldap-avtorizacziyu-k-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-22T03:40:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:36+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Int\u00e9gration de l'autorisation LDAP \u00e0 Kubernetes | ProHoster","description":"Petite instruction sur la fa\u00e7on de proc\u00e9der.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/prikruchivaem-ldap-avtorizacziyu-k-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c LDAP-\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u043a Kubernetes | ProHoster","og:description":"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/prikruchivaem-ldap-avtorizacziyu-k-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-22T03:40:58+00:00","article:modified_time":"2020-03-03T13:14:36+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"70867","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:12:23","updated":"2022-09-28 01:58:51","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/70867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=70867"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/70867\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/70868"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=70867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=70867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=70867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}