{"id":1377,"date":"2022-09-07T17:54:07","date_gmt":"2022-09-07T17:54:07","guid":{"rendered":"http:\/\/patriciocerda.com\/?p=1377"},"modified":"2022-09-08T15:13:37","modified_gmt":"2022-09-08T15:13:37","slug":"kasten-habilitar-autenticacion-mediante-azure-ad","status":"publish","type":"post","link":"https:\/\/patriciocerda.com\/?p=1377","title":{"rendered":"Kasten &#8211; Habilitar autenticaci\u00f3n mediante Azure AD y OIDC"},"content":{"rendered":"<p>Hola a todos!\u00a0 Anteriormente hemos hablado de como instalar Kasten K10 en diversas infraestructuras como <a title=\"Kasten \u2013 Instalar Kasten sobre AWS EKS utilizando roles y usuarios de IAM\" href=\"https:\/\/patriciocerda.com\/?p=1200\" target=\"_blank\" rel=\"noopener\">AWS EKS<\/a>, <a title=\"Kasten \u2013 Instalar Kasten sobre Azure AKS\" href=\"https:\/\/patriciocerda.com\/?p=1244\" target=\"_blank\" rel=\"noopener\">Azure AKS<\/a>, <a title=\"Kasten \u2013 Instalar Kasten sobre GCP GKE\" href=\"https:\/\/patriciocerda.com\/?p=1228\">Google GKE<\/a>, ya sea mediante autenticaci\u00f3n basica o mediante tokens.\u00a0 En un entorno productivo, lo usual es que nos podamos autenticar mediante algun protocolo de autenticaci\u00f3n como OIDC, y alg\u00fan Identity Provider como LDAP, Amazon, Google, etc.\u00a0 En este post, veremos como habilitar el acceso a Kasten mediante OIDC y Azure AD como Identity Provider, de manera de poder autenticarnos utilizando un usuario de Azure AD.<\/p>\n<p><strong>NOTA<\/strong>: Si bien este procedimiento fue llevado a cabo utilizando Kasten K10 sobre Azure AKS, esta configuraci\u00f3n es perfectamente valida para cualquier instancia Kasten K10, independiente de la plataforma Kubernetes en la que haya sido desplegado.<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/patriciocerda.com\/?p=1377\/#Que_necesitamos\" >Que necesitamos?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/patriciocerda.com\/?p=1377\/#Azure_%E2%80%93_Configuracion_de_App_Registration\" >Azure &#8211; Configuraci\u00f3n de App Registration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/patriciocerda.com\/?p=1377\/#Azure_%E2%80%93_Usuarios_y_Grupos\" >Azure &#8211; Usuarios y Grupos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/patriciocerda.com\/?p=1377\/#Azure_%E2%80%93_Obtener_el_endpoint_para_OIDC\" >Azure &#8211; Obtener el endpoint para OIDC<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/patriciocerda.com\/?p=1377\/#Configurar_Kasten_para_utilizar_OIDC\" >Configurar Kasten para utilizar OIDC<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/patriciocerda.com\/?p=1377\/#Configurar_Cluster_Role_Binding\" >Configurar Cluster Role Binding<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Que_necesitamos\"><\/span>Que necesitamos?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Pues para comenzar porsupuesto necesitamos una subscripci\u00f3n de Azure, y un tenant de Azure AD.<\/p>\n<p>Necesitaremos adem\u00e1s un App Registration en Azure Active Directory, el cual utilizaremos como cliente OIDC.\u00a0 En mi caso tengo un App Registration de tipo single-tenant, llamado &#8220;pcerda-sp&#8221;<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1381\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-300x151.jpg\" alt=\"\" width=\"417\" height=\"210\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-200x101.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-300x151.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-400x202.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-540x272.jpg 540w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-600x303.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-768x387.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-800x403.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-1024x516.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-1200x605.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01-1536x774.jpg 1536w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad01.jpg 1662w\" sizes=\"(max-width: 417px) 100vw, 417px\" \/><\/a><\/p>\n<hr \/>\n<h2><span class=\"ez-toc-section\" id=\"Azure_%E2%80%93_Configuracion_de_App_Registration\"><\/span>Azure &#8211; Configuraci\u00f3n de App Registration<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En este Azure App Registration, debemos obtener el <strong>Application ID<\/strong>, el cual es basicamente el OIDC Client ID que utilizaremos posteriormente.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1382\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-300x152.jpg\" alt=\"\" width=\"403\" height=\"204\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-200x101.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-300x152.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-400x203.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-540x272.jpg 540w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-600x304.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-768x389.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-800x405.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-1024x519.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02-1200x608.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad02.jpg 1459w\" sizes=\"(max-width: 403px) 100vw, 403px\" \/><\/a><\/p>\n<p>El siguiente paso ser\u00e1 crear un <strong>Client Secret<\/strong>, que utilizaremos como client secret.\u00a0 El valor de \u00e9ste secret deberemos guardarlo para utilizarlo posteriormente<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1383\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-300x129.jpg\" alt=\"\" width=\"409\" height=\"176\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-200x86.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-300x129.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-400x172.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-600x258.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-768x330.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-800x344.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-1024x440.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-1200x516.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad03-1536x660.jpg 1536w\" sizes=\"(max-width: 409px) 100vw, 409px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Estos valores, <strong>Client ID y Client Secret<\/strong> ser\u00e1n utilizados posteriormente por Kasten K10 para<strong> interactuar con el Identity Provider<\/strong>, que en este caso es Azure AD.<\/p>\n<p>A continuaci\u00f3n lo que haremos es ir a la secci\u00f3n &#8220;<strong>Authentication<\/strong>&#8221; y a\u00f1adir la <strong>URI<\/strong> que utiliza Kasten para recibir y aceptar el <strong>Access Token y ID Token (JWT)<\/strong>por parte de Azure, luego que un usuario se haya autenticado exitosamente.\u00a0 En\u00a0 mi caso, la URI de Kasten es &#8220;https:\/\/kastenaks.vlatam.net\/k10\/auth-svc\/v0\/odic\/redirect&#8221;.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1384\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-300x128.jpg\" alt=\"\" width=\"403\" height=\"172\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-200x85.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-300x128.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-400x170.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-600x256.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-768x327.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-800x341.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-940x400.jpg 940w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-1024x436.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-1200x511.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad04-1536x655.jpg 1536w\" sizes=\"(max-width: 403px) 100vw, 403px\" \/><\/a><\/p>\n<p>Lo siguiente que debemos hacer es configurar los <strong>Group Claims.<\/strong>\u00a0 Por defecto, Azure AD no incluye informaci\u00f3n de los grupos en los Access Tokens, por lo que deberemos a\u00f1adirlo a la configuraci\u00f3n.\u00a0 Si nos vamos a la secci\u00f3n &#8220;<strong>Token Configuration<\/strong>&#8220;, podemos a\u00f1adir un nuevo Claim haciendo click en &#8220;<strong>Add optional claim<\/strong>&#8221; y seleccionando los tipos de grupo que queramos incluir.\u00a0 En mi caso utilizar\u00e9 Security Groups.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1390\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-300x92.jpg\" alt=\"\" width=\"408\" height=\"125\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-200x62.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-300x92.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-400x123.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-600x185.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-768x236.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-800x246.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-1024x315.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-1200x369.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad05_02-1536x473.jpg 1536w\" sizes=\"(max-width: 408px) 100vw, 408px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2><span class=\"ez-toc-section\" id=\"Azure_%E2%80%93_Usuarios_y_Grupos\"><\/span>Azure &#8211; Usuarios y Grupos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Lo siguiente que debemos definir, son los usuarios y grupos de Azure AD que utilizaremos para conectarnos con nuestra instancia de Kasten K10.\u00a0 En mi caso, utilizar\u00e9 mi propio usuario de Azure AD, el cual pertenece a un grupo llamado &#8220;kasten&#8221; como pueden ver en la siguiente imagen.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1386\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-300x126.jpg\" alt=\"\" width=\"405\" height=\"170\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-200x84.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-300x126.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-400x167.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-600x251.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-768x321.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-800x335.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-1024x428.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-1200x502.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-1536x643.jpg 1536w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06.jpg 1807w\" sizes=\"(max-width: 405px) 100vw, 405px\" \/><\/a><\/p>\n<hr \/>\n<h2><span class=\"ez-toc-section\" id=\"Azure_%E2%80%93_Obtener_el_endpoint_para_OIDC\"><\/span>Azure &#8211; Obtener el endpoint para OIDC<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>El ultimo paso que debemos dar en Azure, ser\u00e1 la de obtener la <strong>URL del proveedor OIDC<\/strong> que estamos configurando.\u00a0 Para esto, nos vamos nuevamente a nuestra App, hacemos click en &#8220;<strong>Endpoints<\/strong>&#8221; y copiamos la direcci\u00f3n que aparece en el punto &#8220;<strong>OpenID Connect metadata document<\/strong>&#8221;<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1387\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-300x111.jpg\" alt=\"\" width=\"400\" height=\"148\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-200x74.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-300x111.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-400x147.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-600x221.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-768x283.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-800x295.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-1024x377.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-1200x442.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad07-1536x566.jpg 1536w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>Abrimos otro tab en nuestro navegador y utilizamos esta URL.\u00a0 El dato que necesitamos se encuentra en la secci\u00f3n &#8220;Issuer&#8221;.\u00a0 La URL que figura en dicho punto es la que utilizaremos como <strong>proveedor OIDC.<\/strong><\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1388\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-300x224.jpg\" alt=\"\" width=\"404\" height=\"302\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-200x149.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-300x224.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-400x299.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-600x448.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-768x573.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-800x597.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-1024x765.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-1200x896.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08-1536x1147.jpg 1536w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad08.jpg 1792w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/a><\/p>\n<hr \/>\n<h2><span class=\"ez-toc-section\" id=\"Configurar_Kasten_para_utilizar_OIDC\"><\/span>Configurar Kasten para utilizar OIDC<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En este caso, ya tenemos instalada una instancia Kasten K10 sobre Azure AKS, por lo que los siguientes pasos dan por hecho que Kasten est\u00e1 operativo.<\/p>\n<p>Obtenemos la configuraci\u00f3n actual de Kasten con el siguiente comando;<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-1 > .CodeMirror, .fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-1 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_1\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_1\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_1\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">helm get values k10 -n kasten-io > values.yaml<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>Con dicho comando obtendremos un fichero llamado values.yaml, el cual debemos editar como vemos a continuacion:<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-2 > .CodeMirror, .fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-2 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_2\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_2\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_2\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">auth:\n  oidcAuth:\n    clientID: 2b1b89b5-ed2f-4d95-b7a7-7edec80457e5\n    clientSecret: Vev8Q~rx******************************\n    enabled: true\n    groupClaim: groups\n    groupPrefix: pc_az_\n    prompt: select_account\n    providerURL: https:\/\/login.microsoftonline.com\/8d19bba2-5ddc-4b5e-b21d-18fc29a9ef70\/v2.0\n    redirectURL: https:\/\/kastenaks.vlatam.net\/\n    scopes: openid email\n    usernameClaim: sub\n    usernamePrefix: pc_azuser_<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>Los parametros que modificamos corresponden a:<\/p>\n<ul>\n<li><strong> clientID<\/strong>: Application ID que obtuvimos previamente<\/li>\n<li><strong>clientSecret<\/strong>: Client Secreat creado en la Azure App<\/li>\n<li><strong>groupClaim<\/strong>: Nombre del claim en Azure<\/li>\n<li><strong>groupPrefix<\/strong>: Prefijo que se le a\u00f1adir\u00e1 a los grupos de Azure AD durante la autenticaci\u00f3n<\/li>\n<li><strong>providerURL<\/strong>: URL del proveedor OIDC que conseguimos previamente<\/li>\n<li><strong>redirectURL<\/strong>: URL de nuestra instancia Kasten<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Guardamos los cambios, y ejecutamos el siguiente comando para aplicar los cambios en nuestra instancia Kasten<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-3 > .CodeMirror, .fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-3 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_3\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_3\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_3\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">helm upgrade k10 kasten\/k10 -n kasten-io -f values.yaml<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2><span class=\"ez-toc-section\" id=\"Configurar_Cluster_Role_Binding\"><\/span>Configurar Cluster Role Binding<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Si nos conectamos a nuestra instancia Kasten, nos podremos autenticar con nuestro usuario de Azure AD, pero a\u00fan no hemos configurado ning\u00fan rol a los usuarios de Azure AD, por lo que, como vemos en la siguiente imagen, estamos conectados a Kasten pero con <strong>acceso limitado<\/strong>.\u00a0\u00a0 Lo que debemos hacer en este punto, es copiar el username que figura en Kasten.\u00a0 Este username es el object ID de nuestro usuario de Azure AD, con el prefijo configurado previamente durante la configuraci\u00f3n OIDC para Kasten.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1391\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-300x101.jpg\" alt=\"\" width=\"398\" height=\"134\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-200x67.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-300x101.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-400x134.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-600x201.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-768x257.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-800x268.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-1024x343.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-1200x402.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad09-1536x515.jpg 1536w\" sizes=\"(max-width: 398px) 100vw, 398px\" \/><\/a><\/p>\n<p>Luego, nos dirigimos al menu <strong>Settings &gt; Support<\/strong> y vemos los detalles del usuario.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1392\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-300x220.jpg\" alt=\"\" width=\"402\" height=\"295\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-200x147.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-300x220.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-400x293.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-600x440.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-768x563.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-800x586.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-1024x750.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-1200x879.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad10-1536x1125.jpg 1536w\" sizes=\"(max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>En las primeras lineas podemos ver:<\/p>\n<ul>\n<li><strong>Username<\/strong>: Usuario de Azure AD con el que nos hemos conectado.\u00a0 En este caso el Token enviado por Azure incluye el Object ID del usuario y le a\u00f1ade el prefijo.<\/li>\n<li><strong>Groups<\/strong>: Los grupos de Azure AD a los que pertenece el usuario, con el prefijo correspondiente seg\u00fan la configuracion OIDC que le hemos dado a Kasten previamente.\u00a0 En este caso el Token enviado por Azure incluye el Object ID de cada grupo y le a\u00f1ade el prefijo.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>De hecho, si verificamos el AD Group en Azure como lo hicimos antes, podemos ver el Object ID de cada Grupo de Azure AD al cual pertenece el usuario conectado.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1386\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-300x126.jpg\" alt=\"\" width=\"414\" height=\"174\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-200x84.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-300x126.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-400x167.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-600x251.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-768x321.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-800x335.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-1024x428.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-1200x502.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06-1536x643.jpg 1536w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad06.jpg 1807w\" sizes=\"(max-width: 414px) 100vw, 414px\" \/><\/a><\/p>\n<p>Lo que toca pues es simplemente configurar el Cluster Role Binding en Kubernetes, para permitir que nuestro grupo de Azure AD\u00a0 tenga acceso a nuestra instancia Kasten.<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-4 > .CodeMirror, .fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-4 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_4\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_4\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_4\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">kubectl create clusterrolebinding k10-admin-azure --clusterrole=k10-admin --group=pc_az_815fe7c9-4961-43d2-958c-38a039af0c23<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>En este caso estamos aplicando el Cluster Role llamado k10-admin, el cual da privilegios de acceso completo en Kasten, como podemos ver en la siguiente imagen.\u00a0 Porsupuesto, si lo desean, pueden asignar otros roles a los grupos de Azure AD, dependiendo de los requisitos de acceso de los usuarios, de manera de aplicar el control de acceso basado en roles (RBAC).<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1393\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-300x101.jpg\" alt=\"\" width=\"404\" height=\"136\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-200x67.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-300x101.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-400x135.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-600x202.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-768x258.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-800x269.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-1024x344.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-1200x404.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/aks-ad11-1536x517.jpg 1536w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Pues eso ser\u00eda todo, ya con este podemos acceder a nuestra instancia Kasten utilizando usuarios de Azure AD durante la autenticaci\u00f3n.\u00a0\u00a0 Nos vemos!!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hola a todos!\u00a0 Anteriormente hemos hablado de como instalar Kasten<\/p>\n","protected":false},"author":1,"featured_media":1394,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[63,25,49,27,64],"tags":[52,51,65,37,33,32,29,31,66],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kasten - Habilitar autenticaci\u00f3n mediante Azure AD y OIDC - vLatam<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/patriciocerda.com\/?p=1377\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kasten - Habilitar autenticaci\u00f3n mediante Azure AD y OIDC - vLatam\" \/>\n<meta property=\"og:description\" content=\"Hola a todos!\u00a0 Anteriormente hemos hablado de como instalar Kasten\" \/>\n<meta property=\"og:url\" content=\"https:\/\/patriciocerda.com\/?p=1377\" \/>\n<meta property=\"og:site_name\" content=\"vLatam\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-07T17:54:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-08T15:13:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"pcerda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pcerda\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1377\",\"url\":\"https:\/\/patriciocerda.com\/?p=1377\",\"name\":\"Kasten - Habilitar autenticaci\u00f3n mediante Azure AD y OIDC - vLatam\",\"isPartOf\":{\"@id\":\"https:\/\/patriciocerda.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1377#primaryimage\"},\"image\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1377#primaryimage\"},\"thumbnailUrl\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png\",\"datePublished\":\"2022-09-07T17:54:07+00:00\",\"dateModified\":\"2022-09-08T15:13:37+00:00\",\"author\":{\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a\"},\"breadcrumb\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1377#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/patriciocerda.com\/?p=1377\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1377#primaryimage\",\"url\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png\",\"contentUrl\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1377#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/patriciocerda.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kasten &#8211; Habilitar autenticaci\u00f3n mediante Azure AD y OIDC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/patriciocerda.com\/#website\",\"url\":\"https:\/\/patriciocerda.com\/\",\"name\":\"vLatam\",\"description\":\"El Blog de Patricio Cerda\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/patriciocerda.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a\",\"name\":\"pcerda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1776772888\",\"contentUrl\":\"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1776772888\",\"caption\":\"pcerda\"},\"url\":\"https:\/\/patriciocerda.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kasten - Habilitar autenticaci\u00f3n mediante Azure AD y OIDC - vLatam","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/patriciocerda.com\/?p=1377","og_locale":"en_US","og_type":"article","og_title":"Kasten - Habilitar autenticaci\u00f3n mediante Azure AD y OIDC - vLatam","og_description":"Hola a todos!\u00a0 Anteriormente hemos hablado de como instalar Kasten","og_url":"https:\/\/patriciocerda.com\/?p=1377","og_site_name":"vLatam","article_published_time":"2022-09-07T17:54:07+00:00","article_modified_time":"2022-09-08T15:13:37+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png","type":"image\/png"}],"author":"pcerda","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pcerda","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/patriciocerda.com\/?p=1377","url":"https:\/\/patriciocerda.com\/?p=1377","name":"Kasten - Habilitar autenticaci\u00f3n mediante Azure AD y OIDC - vLatam","isPartOf":{"@id":"https:\/\/patriciocerda.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/patriciocerda.com\/?p=1377#primaryimage"},"image":{"@id":"https:\/\/patriciocerda.com\/?p=1377#primaryimage"},"thumbnailUrl":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png","datePublished":"2022-09-07T17:54:07+00:00","dateModified":"2022-09-08T15:13:37+00:00","author":{"@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a"},"breadcrumb":{"@id":"https:\/\/patriciocerda.com\/?p=1377#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/patriciocerda.com\/?p=1377"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/patriciocerda.com\/?p=1377#primaryimage","url":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png","contentUrl":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/patriciocerda.com\/?p=1377#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/patriciocerda.com\/"},{"@type":"ListItem","position":2,"name":"Kasten &#8211; Habilitar autenticaci\u00f3n mediante Azure AD y OIDC"}]},{"@type":"WebSite","@id":"https:\/\/patriciocerda.com\/#website","url":"https:\/\/patriciocerda.com\/","name":"vLatam","description":"El Blog de Patricio Cerda","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/patriciocerda.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a","name":"pcerda","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/image\/","url":"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1776772888","contentUrl":"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1776772888","caption":"pcerda"},"url":"https:\/\/patriciocerda.com\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/09\/IntroBlog.png","_links":{"self":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1377"}],"collection":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1377"}],"version-history":[{"count":5,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1377\/revisions"}],"predecessor-version":[{"id":1396,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1377\/revisions\/1396"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/media\/1394"}],"wp:attachment":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}