{"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\/es\/blog\/administrirovanie\/prikruchivaem-ldap-avtorizacziyu-k-kubernetes","title":{"rendered":"Implementando autorizaci\u00f3n LDAP en Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Implementando autorizaci\u00f3n LDAP en Kubernetes\" src=\"\/wp-content\/uploads\/2020\/02\/2b0f0a4921e049a78a015e7693d697cf.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Peque\u00f1a gu\u00eda sobre c\u00f3mo utilizar Keycloak para vincular Kubernetes con su servidor LDAP y configurar la importaci\u00f3n de usuarios y grupos. Esto permitir\u00e1 configurar RBAC para sus usuarios y utilizar auth-proxy para proteger el panel de control de Kubernetes y otras aplicaciones que no pueden realizar la autorizaci\u00f3n por s\u00ed mismas.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"ustanovka-keycloak\">Instalaci\u00f3n de Keycloak<\/h2>\n<p><\/p>\n<p>Supongamos que ya tiene un servidor LDAP. Puede ser Active Directory, FreeIPA, OpenLDAP o cualquier otro. Si no tiene un servidor LDAP, puede crear usuarios directamente en la interfaz de Keycloak, o usar proveedores oidc p\u00fablicos (Google, GitHub, GitLab), el resultado ser\u00e1 casi el mismo.<\/p>\n<p><\/p>\n<p>Primero instalaremos Keycloak, la instalaci\u00f3n se puede realizar de forma independiente o directamente en el cl\u00faster de Kubernetes; por lo general, si tiene varios cl\u00fasteres de Kubernetes, ser\u00eda m\u00e1s sencillo instalarlo de forma independiente. Por otro lado, siempre puede utilizar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\/tree\/master\/stable\/keycloak\">el chart helm oficial<\/a><\/noindex> y instalarlo directamente en su cl\u00faster.<\/p>\n<p><\/p>\n<p>Para almacenar los datos de Keycloak necesitar\u00e1 una base de datos. Por defecto, se utiliza <code>h2<\/code> (todos los datos se almacenan localmente), pero tambi\u00e9n es posible utilizar <code>postgres<\/code>, <code>mysql<\/code> o <code>mariadb<\/code>.<br \/>\nSi finalmente ha decidido instalar Keycloak de forma independiente, encontrar\u00e1 instrucciones m\u00e1s detalladas en <noindex><a rel=\"nofollow\" href=\"https:\/\/www.keycloak.org\/docs\/latest\/getting_started\/index.html\">documentaci\u00f3n oficial<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-federacii\">Configuraci\u00f3n de la federaci\u00f3n<\/h2>\n<p><\/p>\n<p>Primero crearemos un nuevo realm. Un realm es el espacio de nuestra aplicaci\u00f3n. Cada aplicaci\u00f3n puede tener su propio realm con diferentes usuarios y configuraciones de autorizaci\u00f3n. El realm principal es utilizado por Keycloak mismo y no es correcto usarlo para nada m\u00e1s.<\/p>\n<p><\/p>\n<p>Hacemos clic en <strong>A\u00f1adir reino<\/strong><\/p>\n<p><\/p>\n<p>Opci\u00f3n<br \/>\nValue<\/p>\n<p><strong>Nombre<\/strong><br \/>\n<code>kubernetes<\/code><\/p>\n<p><strong>Nombre para mostrar<\/strong><br \/>\n<code>Kubernetes<\/code><\/p>\n<p><strong>Nombre de visualizaci\u00f3n 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 verifica por defecto si el email del usuario est\u00e1 confirmado o no. Dado que usamos nuestro propio servidor LDAP, esta verificaci\u00f3n casi siempre devolver\u00e1 <code>false<\/code>. Vamos a desactivar la visualizaci\u00f3n de este par\u00e1metro en Kubernetes:<\/p>\n<p><\/p>\n<p><strong>\u00c1mbitos de cliente<\/strong> \u2192 <strong>Correo Electr\u00f3nico<\/strong> \u2192 <strong>Mapeadores<\/strong> \u2192 <strong>Email verificado<\/strong> (Eliminar)<\/p>\n<p><\/p>\n<p>Ahora configuraremos la federaci\u00f3n, para ello vayamos a:<\/p>\n<p><\/p>\n<p><strong>Federaci\u00f3n de usuarios<\/strong> \u2192 <strong>A\u00f1adir proveedor\u2026<\/strong> \u2192 <strong>ldap<\/strong><\/p>\n<p><\/p>\n<p>Dar\u00e9 un ejemplo de configuraci\u00f3n para FreeIPA:<\/p>\n<p><\/p>\n<p>Opci\u00f3n<br \/>\nValue<\/p>\n<p><strong>Nombre de visualizaci\u00f3n en consola<\/strong><br \/>\n<code>freeipa.ejemplo.org<\/code><\/p>\n<p><strong>Proveedor<\/strong><br \/>\n<code>Red Hat Directory Server<\/code><\/p>\n<p><strong>Atributo UUID LDAP<\/strong><br \/>\n<code>ipauniqueid<\/code><\/p>\n<p><strong>URL de conexi\u00f3n<\/strong><br \/>\n<code>ldaps:\/\/freeipa.example.org<\/code><\/p>\n<p><strong>DN de usuarios<\/strong><br \/>\n<code>cn=users,cn=accounts,dc=ejemplo,dc=org<\/code><\/p>\n<p><strong>DN de enlace<\/strong><br \/>\n<code>uid=keycloak-svc,cn=users,cn=accounts,dc=ejemplo,dc=org<\/code><\/p>\n<p><strong>Credencial de enlace<\/strong><br \/>\n<code>&lt;contrase\u00f1a&gt;<\/code><\/p>\n<p><strong>Permitir autenticaci\u00f3n Kerberos:<\/strong><br \/>\n<code>on<\/code><\/p>\n<p><strong>Reino Kerberos:<\/strong><br \/>\n<code>EJEMPLO.ORG<\/code><\/p>\n<p><strong>Principal del servidor:<\/strong><br \/>\n<code>HTTP\/freeipa.ejemplo.org@EJEMPLO.ORG<\/code><\/p>\n<p><strong>KeyTab:<\/strong><br \/>\n<code>\/etc\/krb5.keytab<\/code><\/p>\n<p><\/p>\n<p>El usuario <code>keycloak-svc<\/code> debe ser creado previamente en nuestro servidor LDAP.<\/p>\n<p><\/p>\n<p>En el caso de Active Directory, simplemente seleccione <strong>Proveedor: Active Directory<\/strong> y la configuraci\u00f3n necesaria se completar\u00e1 autom\u00e1ticamente en el formulario.<\/p>\n<p><\/p>\n<p>Hacemos clic en <strong>Guardar<\/strong><\/p>\n<p><\/p>\n<p>Ahora vayamos a:<\/p>\n<p><\/p>\n<p><strong>Federaci\u00f3n de usuarios<\/strong> \u2192 <strong>freeipa.ejemplo.org<\/strong> \u2192 <strong>Mapeadores<\/strong> \u2192 <strong>Nombre<\/strong><\/p>\n<p><\/p>\n<p>Opci\u00f3n<br \/>\nValue<\/p>\n<p><strong>atributo Ldap<\/strong><br \/>\n<code>givenName<\/code><\/p>\n<p><\/p>\n<p>Ahora activaremos el mapeo de grupos:<\/p>\n<p><\/p>\n<p><strong>Federaci\u00f3n de usuarios<\/strong> \u2192 <strong>freeipa.ejemplo.org<\/strong> \u2192 <strong>Mapeadores<\/strong> \u2192 <strong>Crear<\/strong><\/p>\n<p><\/p>\n<p>Opci\u00f3n<br \/>\nValue<\/p>\n<p><strong>Nombre<\/strong><br \/>\n<code>groups<\/code><\/p>\n<p><strong>Tipo de mapeador<\/strong><br \/>\n<code>mapeador-grupo-ldap<\/code><\/p>\n<p><strong>DN de grupos LDAP<\/strong><br \/>\n<code>cn=groups,cn=accounts,dc=example,dc=org<\/code><\/p>\n<p><strong>Estrategia de recuperaci\u00f3n de grupos de usuarios<\/strong><br \/>\n<code>OBTENER_GRUPOS_DEL_ATTRIBUTO_MEMBEROF_DEL_USUARIO<\/code><\/p>\n<p><\/p>\n<p>Con esto, la configuraci\u00f3n de federaci\u00f3n ha terminado, pasemos a la configuraci\u00f3n del cliente.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-klienta\">Configuraci\u00f3n del cliente<\/h2>\n<p><\/p>\n<p>Crearemos un nuevo cliente (una aplicaci\u00f3n que recibir\u00e1 usuarios de Keycloak). Vamos a:<\/p>\n<p><\/p>\n<p><strong>Clientes<\/strong> \u2192 <strong>Crear<\/strong><\/p>\n<p><\/p>\n<p>Opci\u00f3n<br \/>\nValue<\/p>\n<p><strong>Client ID<\/strong><br \/>\n<code>kubernetes<\/code><\/p>\n<p><strong>Tipo de acceso<\/strong><br \/>\n<code>confidencial<\/code><\/p>\n<p><strong>URL ra\u00edz<\/strong><br \/>\n<code>http:\/\/kubernetes.example.org\/<\/code><\/p>\n<p><strong>URI de redirecci\u00f3n v\u00e1lidas<\/strong><br \/>\n<code>http:\/\/kubernetes.example.org\/*<\/code><\/p>\n<p><strong>URL de administraci\u00f3n<\/strong><br \/>\n<code>http:\/\/kubernetes.example.org\/<\/code><\/p>\n<p><\/p>\n<p>Tambi\u00e9n crearemos un scope para grupos:<\/p>\n<p><\/p>\n<p><strong>Alcances del cliente<\/strong> \u2192 <strong>Crear<\/strong><\/p>\n<p><\/p>\n<p>Opci\u00f3n<br \/>\nValue<\/p>\n<p><strong>Plantilla<\/strong><br \/>\n<code>Sin plantilla<\/code><\/p>\n<p><strong>Nombre<\/strong><br \/>\n<code>groups<\/code><\/p>\n<p><strong>Ruta completa del grupo<\/strong><br \/>\n<code>false<\/code><\/p>\n<p><\/p>\n<p>Y configuraremos un mapeador para ellos:<\/p>\n<p><\/p>\n<p><strong>Alcances del cliente<\/strong> \u2192 <strong>groups<\/strong> \u2192 <strong>Mapeadores<\/strong> \u2192 <strong>Crear<\/strong><\/p>\n<p><\/p>\n<p>Opci\u00f3n<br \/>\nValue<\/p>\n<p><strong>Nombre<\/strong><br \/>\n<code>groups<\/code><\/p>\n<p><strong>Tipo de mapeador<\/strong><br \/>\n<code>Membres\u00eda de grupo<\/code><\/p>\n<p><strong>Nombre de reclamo del token<\/strong><br \/>\n<code>groups<\/code><\/p>\n<p><\/p>\n<p>Ahora necesitamos habilitar el mapeo de grupos en nuestro scope de cliente:<\/p>\n<p><\/p>\n<p><strong>Clientes<\/strong> \u2192 <strong>kubernetes<\/strong> \u2192 <strong>Alcances del cliente<\/strong> \u2192 <strong>Alcances de cliente predeterminados<\/strong><\/p>\n<p><\/p>\n<p>Seleccionamos <strong>groups<\/strong> en <strong>Client Scopes Disponibles<\/strong>, hacemos clic en <strong>A\u00f1adir seleccionados<\/strong><\/p>\n<p><\/p>\n<p>Ahora configuraremos la autenticaci\u00f3n de nuestra aplicaci\u00f3n, vamos a:<\/p>\n<p><\/p>\n<p><strong>Clientes<\/strong> \u2192 <strong>kubernetes<\/strong><\/p>\n<p><\/p>\n<p>Opci\u00f3n<br \/>\nValue<\/p>\n<p><strong>Autorizaci\u00f3n habilitada<\/strong><br \/>\n<code>las vistas materializadas no pueden tener tablas detalle remotas.<\/code><\/p>\n<p><\/p>\n<p>Haremos clic en <strong>guardar<\/strong> y con esto la configuraci\u00f3n del cliente ha terminado, ahora en la pesta\u00f1a<\/p>\n<p><\/p>\n<p><strong>Clientes<\/strong> \u2192 <strong>kubernetes<\/strong> \u2192 <strong>Credenciales<\/strong><\/p>\n<p><\/p>\n<p>podr\u00e1 obtener <strong>Secret<\/strong> que utilizaremos m\u00e1s adelante.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-kubernetes\">Configuraci\u00f3n de Kubernetes<\/h2>\n<p><\/p>\n<p>La configuraci\u00f3n de Kubernetes para la autorizaci\u00f3n OIDC es bastante trivial y no es nada muy complicado. Todo lo que necesita hacer es colocar el certificado CA de su servidor OIDC en <code>\/etc\/kubernetes\/pki\/oidc-ca.pem<\/code> y a\u00f1adir las opciones necesarias para kube-apiserver.<br \/>\nPara esto, actualice <code>\/etc\/kubernetes\/manifests\/kube-apiserver.yaml<\/code> en todos sus maestros:<\/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>Y tambi\u00e9n actualice la configuraci\u00f3n de kubeadm en el cl\u00faster para no perder estos ajustes al actualizar:<\/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>Con esto, la configuraci\u00f3n de Kubernetes ha terminado. Puede repetir estas acciones en todos sus cl\u00fasteres de Kubernetes.<\/p>\n<p><\/p>\n<h2 id=\"nachalnaya-avtorizaciya\">Autorizaci\u00f3n inicial<\/h2>\n<p><\/p>\n<p>Despu\u00e9s de estas acciones, ya tendr\u00e1 un cl\u00faster de Kubernetes con la autorizaci\u00f3n OIDC configurada. La \u00fanica cuesti\u00f3n es que sus usuarios a\u00fan no tienen un cliente configurado ni su propio kubeconfig. Para resolver este problema, es necesario configurar la emisi\u00f3n autom\u00e1tica de kubeconfig a los usuarios despu\u00e9s de la autorizaci\u00f3n exitosa.<\/p>\n<p><\/p>\n<p>Para esto, se pueden utilizar aplicaciones web especiales que permiten autenticar al usuario y luego descargar el kubeconfig preparado. Una de las m\u00e1s convenientes es <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/negz\/kuberos\">Kuberos<\/a><\/noindex>, que permite describir todos los cl\u00fasteres de Kubernetes en una sola configuraci\u00f3n y cambiar f\u00e1cilmente entre ellos.<\/p>\n<p><\/p>\n<p>Para configurar Kuberos, simplemente describa la plantilla para kubeconfig y ejecute con los siguientes par\u00e1metros:<\/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>Para m\u00e1s informaci\u00f3n detallada, consulte <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/negz\/kuberos#usage\">Uso<\/a><\/noindex> en Github.<\/p>\n<p><\/p>\n<p>Tambi\u00e9n es posible usar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/int128\/kubelogin\">kubelogin<\/a><\/noindex> si desea realizar la autenticaci\u00f3n directamente en la computadora del usuario. En este caso, se abrir\u00e1 un navegador con el formulario de autenticaci\u00f3n en localhost.<\/p>\n<p><\/p>\n<p>El kubeconfig obtenido se puede verificar en el sitio <noindex><a rel=\"nofollow\" href=\"https:\/\/jwt.io\/#debugger-io\">jwt.io<\/a><\/noindex>. Simplemente copie el valor <code>users[].user.auth-provider.config.id-token<\/code> de su kubeconfig en el formulario del sitio y obtendr\u00e1 la interpretaci\u00f3n de inmediato.<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-rbac\">Configuraci\u00f3n de RBAC<\/h2>\n<p><\/p>\n<p>Al configurar RBAC, se puede hacer referencia tanto al nombre de usuario (campo <code>name<\/code> en el token jwt), como al grupo de usuarios (campo <code>groups<\/code> en el token jwt). Aqu\u00ed hay un ejemplo de configuraci\u00f3n de permisos para el grupo <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>M\u00e1s ejemplos de RBAC se pueden encontrar en <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/rbac\/\">la documentaci\u00f3n oficial de Kubernetes<\/a><\/noindex><\/p>\n<p><\/p>\n<h2 id=\"nastroyka-auth-proxy\">Configuraci\u00f3n del auth-proxy<\/h2>\n<p><\/p>\n<p>Hay un proyecto excelente <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/keycloak\/keycloak-gatekeeper\">keycloak-gatekeeper<\/a><\/noindex>, que permite proteger cualquier aplicaci\u00f3n, brindando al usuario la posibilidad de autenticarse en el servidor OIDC. Mostrar\u00e9 c\u00f3mo configurarlo usando el ejemplo de 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>Fuente: <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\/es\/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=\"es_ES\" \/>\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\/es\/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\udd47 Conectando la autenticaci\u00f3n LDAP a Kubernetes | ProHoster","description":"Una peque\u00f1a gu\u00eda sobre c\u00f3mo hacerlo.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/prikruchivaem-ldap-avtorizacziyu-k-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/70867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=70867"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/70867\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/70868"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=70867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=70867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=70867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}