Autenticación sin contraseña para servidores: práctica con ASA

Rate this content
Bookmark

Hoy en día, no necesitas una contraseña separada para cada sitio web en el que inicias sesión. Sin embargo, gracias a la deuda tecnológica y la tradición, muchos profesionales de DevOps todavía tienen que lidiar con una gran cantidad de claves SSH para acceder a los servidores en los que a veces necesitamos estar. Con OAuth moderno, un solo inicio de sesión y un segundo factor para demostrar tu identidad son suficientes para acceder de forma segura a todos los servicios a los que tienes autorización. ¿Y si SSHing en servidores fuera tan fácil? En este masterclass, utilizaremos la herramienta de Acceso Avanzado a Servidores de Okta (anteriormente ScaleFT) para experimentar una forma en que el sueño de enviar claves SSH como la contraseña se ha hecho realidad.


- discutiremos cómo funciona ASA y cuándo es la herramienta adecuada para el trabajo

- guiaremos el proceso de configuración de una cuenta de prueba gratuita de Okta para usar ASA, y la configuración de la puerta de enlace ASA y el servidor en servidores Linux

- luego nos conectaremos por SSH a nuestros hosts con los clientes ASA sin necesidad de proporcionar una clave SSH desde nuestras laptops

- revisaremos los registros de auditoría de nuestras sesiones SSH para examinar qué comandos se ejecutaron

This workshop has been presented at DevOps.js Conf 2022, check out the latest edition of this JavaScript Conference.

FAQ

ASA (Advanced Server Access) de Okta es una herramienta diseñada para gestionar el acceso seguro a servidores mediante la creación de claves de uso único para SSH y RDP. Esta herramienta utiliza un modelo de confianza cero, donde la autenticación y autorización se verifican continuamente, mejorando la seguridad en el acceso a los servidores.

La autenticación se refiere a verificar si una persona es quien dice ser, utilizando métodos como contraseñas o biometría. La autorización determina si la persona autenticada tiene permiso para realizar ciertas acciones. En DevOps, esto se maneja a menudo mediante claves SSH, donde la posesión de la clave privada adecuada permite el acceso a un servidor específico.

Las claves de uso único aumentan la seguridad al reducir el valor de las claves para los atacantes, ya que cada clave se utiliza solo una vez y luego se descarta. Esto disminuye el riesgo de robo o uso indebido de las claves, y simplifica la gestión de acceso al no requerir que los usuarios manejen o almacenen claves a largo plazo.

Es importante realizar correctamente la configuración inicial entre ASA y Okta, lo que incluye sincronizar información entre ambas plataformas y configurar la autorización de usuarios y grupos. También es esencial asegurar que cada aplicación conozca los detalles necesarios de la otra para permitir una autenticación y autorización fluidas.

El modelo de confianza cero es un enfoque de seguridad donde no se asume ninguna confianza inherente a las entidades dentro de una red. En lugar de ello, cada solicitud de acceso es verificada rigurosamente para confirmar la identidad y los permisos del usuario, independientemente de su ubicación o dispositivo.

ASA se integra con el proveedor de identidad existente de la organización, como Okta, utilizándolo como fuente central de verdad sobre la identidad de los usuarios y sus permisos. Esto permite utilizar la misma autenticación que los empleados ya usan para otras aplicaciones, simplificando la gestión de acceso y mejorando la seguridad.

E. Dunham
E. Dunham
32 min
29 Mar, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Este masterclass presenta la herramienta ASA de Okta para gestionar el acceso a servidores y explora los conceptos de autenticación y autorización. Se discuten los desafíos de gestionar claves SSH y los beneficios de utilizar claves de un solo uso. El masterclass también explica cómo ASA de Okta simplifica el acceso a servidores al reutilizar un proveedor de identidad. Proporciona una guía paso a paso para configurar y gestionar la autorización y autenticación utilizando ASA de Okta. Por último, se cubre el proceso de configuración de servidores y clientes, así como la limpieza después de las pruebas.

1. Introducción a ASA de Okta

Short description:

Hola a todos. Soy Emily para los humanos o eDunham para las computadoras. Soy una nerd de código abierto y asistente desde los primeros días en que nos llamábamos DevOps. Trabajo como defensora del desarrollo en Okta. Hoy les mostraré una herramienta de Okta, pero mis opiniones y cualquier error que pueda cometer son completamente míos. Muchos avances en DevOps se centran en alejarnos de ejecutar y gestionar servidores. Pero muchos de nosotros todavía tenemos que ejecutar servidores. Tal vez sea porque estamos trabajando en la migración de una arquitectura antigua que era de última generación cuando se diseñó por primera vez. O tal vez estamos lidiando con cargas de trabajo que realmente requieren que gestionemos directamente nuestros recursos informáticos. De cualquier manera, cuando gestionamos nuestros propios recursos en la nube o hardware, aún podemos separar tareas individuales que sería mejor hacer con software o servicios diseñados específicamente. Hoy me gustaría presentarles un truco para separar una de las partes difíciles de gestionar quién puede acceder a qué y cuándo, y mostrarles cómo replicar ese truco. La herramienta que hace este truco genial, ASA de Okta, no será perfecta para todos los casos de acceso. Sin embargo, incluso si nunca terminas trabajando directamente con ASA, espero que comprender su contexto te ayude a pensar críticamente sobre las fortalezas y debilidades de tus herramientas existentes como SSH convencional. Conocer más sobre tus herramientas y sus alternativas puede ayudarte a tomar las mejores decisiones de seguridad para cada desafío operativo al que te enfrentes.

Soy Emily para los humanos o eDunham para las computadoras. Soy una nerd de código abierto y asistente desde los primeros días en que nos llamábamos DevOps. Trabajo como defensora del desarrollo en Okta. Hoy les mostraré una herramienta de Okta, pero mis opiniones y cualquier error que pueda cometer son completamente míos.

Tenemos aproximadamente dos horas y una audiencia dividida. Algunas personas están aquí en la sala de Zoom y otras están viendo esta grabación en el futuro. Grabaremos la primera mitad con todas estas explicaciones para que las personas del futuro puedan unirse a nosotros. Pero para la segunda mitad práctica, al final, detendré la grabación para que podamos simplemente charlar. Y puedes hacer las preguntas que tal vez no quieras que queden registradas para la posteridad. No tienes que mirar la pantalla mientras escuchas esto. Pero te ayudará ver las capturas de pantalla una vez que llegue al resumen de la configuración.

Ahora, muchos avances en DevOps y gestionar servidores. se centran en alejarnos de ejecutar Eso a menudo es genial. Puedes delegar tareas individuales a personas o entidades especializadas en ellas. Tu base de datos bases de datos, tu herramienta de red es gestionada por expertos en redes. es administrada por expertos en Y eso es genial cuando es algo que puedes hacer. Cuando tienes los recursos para delegar el trabajo específico del dominio a especialistas en esos dominios, generalmente lo harán mejor que tu equipo. Al igual que cuando estás programando, si puedes usar una biblioteca bien probada de primitivas criptográficas en lugar de intentar crear la tuya propia, casi siempre terminarás con un código más seguro como resultado.

Pero muchos de nosotros todavía tenemos que ejecutar servidores. Tal vez sea porque estamos trabajando en la migración de una arquitectura antigua que era de última generación cuando se diseñó por primera vez. O tal vez estamos lidiando con cargas de trabajo que realmente requieren que gestionemos directamente nuestros recursos informáticos. De cualquier manera, cuando gestionamos nuestros propios recursos en la nube o hardware, aún podemos separar tareas individuales que sería mejor hacer con software o servicios diseñados específicamente. Hoy me gustaría presentarles un truco para separar una de las partes difíciles de gestionar quién puede acceder a qué y cuándo, y mostrarles cómo replicar ese truco.

Ahora, como persona que escucha charlas y también usa herramientas, comenzaré con el descargo de responsabilidad que siempre estoy atenta. La herramienta que hace este truco genial, ASA de Okta, no será perfecta para todos los casos de acceso. El mayor obstáculo que podrías encontrar es que el precio es por servidor y se prueba principalmente con la suposición de que estás utilizando Okta como proveedor de identidad. La parte del proveedor de identidad es relativamente negociable, pero lamentablemente el precio no lo es. Sin embargo, incluso si nunca terminas trabajando directamente con ASA, espero que comprender su contexto te ayude a pensar críticamente sobre las fortalezas y debilidades de tus herramientas existentes como SSH convencional. Conocer más sobre tus herramientas y sus alternativas puede ayudarte a tomar las mejores decisiones de seguridad para cada desafío operativo al que te enfrentes.

2. Comprendiendo la Autenticación y Autorización

Short description:

Dado que estamos hablando de seguridad, aclaremos qué significa autenticación. Se expande en dos formas: autenticación y autorización. La autenticación verifica si alguien es la misma persona que antes, mientras que la autorización determina si la persona autenticada tiene permiso para realizar una acción específica. Ningún método de autenticación es perfecto, pero agregar múltiples factores dificulta que los atacantes se hagan pasar por nosotros. La autenticación por sí sola no es suficiente para la autorización. Al igual que tener una identificación no garantiza la entrada a un bar, estar autenticado no garantiza la autorización. La autorización puede cambiar con el tiempo. Comprender la autenticación y autorización es crucial al gestionar el acceso a los recursos.

Dado que estamos hablando de security, me gustaría asegurarme de que todos entendamos qué significa exactamente la autenticación. Esto puede ser algo conocido para algunos de ustedes, pero todos lo escuchan por primera vez en algún momento y las personas ingresan a DevOps desde diferentes ámbitos. El truco de la autenticación es que se expande en dos formas diferentes. Primero, puede referirse a la autenticación. La autenticación responde a la pregunta: ¿es esta la misma persona que antes? Por ejemplo, una licencia de conducir o un pasaporte se utilizan a menudo para la autenticación y poder ingresar a lugares como bares o aviones. El documento con mi foto muestra que probablemente soy la misma persona a la que el gobierno emitió esa identificación. Mi nombre de usuario, contraseña y acceso a mi teléfono son una forma de autenticación para muchas cuentas en línea. Si los tengo, probablemente soy la misma persona que creó la cuenta. El microchip de mi gato también es una forma de autenticación. Si se escapara y alguien escaneara su chip para averiguar cómo llevarla de vuelta a casa, les diría que es el mismo gato que se registró en esa base de datos cuando la llevé por primera vez al veterinario. El descargo de responsabilidad aquí es que ninguna forma de autenticación es perfecta. En cualquier lugar donde el software interactúa con el resto del mundo, hay margen para que ocurran cosas inesperadas. Si alguien conociera todos mis secretos y tuviera acceso a todos mis dispositivos y pudiera usar mis biometrías, podría hacerse pasar por mí. Si alguien pudiera hacer que su rostro se parezca convincentemente al mío, podría pretender ser yo usando mi identificación con foto. Parafraseando a un gran autor, a medida que avanza la tecnología, la tecnología para engañar a esa tecnología crece junto con ella. Esto mantiene las cosas interesantes. Pero lo que podemos hacer es dificultar enormemente que alguien más se haga pasar por nosotros. Cada vez que agregamos otro factor de autenticación, hacemos que sea más difícil para un atacante pretender con éxito ser nosotros. Para acceder a mis cuentas de trabajo, necesitarías conocer mi contraseña, tener mi teléfono y tener mis biometrías juntas. Es relativamente fácil que una contraseña se vea comprometida, especialmente si alguien la reutiliza. Es relativamente fácil que un teléfono sea robado o que se secuestre una tarjeta SIM. Pero cuanto más factores se sumen, más cosas tendrían que salir bien para que un atacante pueda derrotar tus mecanismos de autenticación. Entonces, eso es la autenticación. Responde a la pregunta: ¿eres la misma persona que el tonto? Ahora, la autenticación es necesaria pero no suficiente para la autorización. Al igual que ser la misma persona en mi identificación no es suficiente para garantizar que pueda ingresar a un bar, también necesito estar autorizado por ser mayor de edad. Tener un pasaporte no es suficiente para permitirte subir a un avión, también necesitas estar autorizado para ese vuelo al tener un boleto. La autorización puede cambiar de un día para otro o incluso de un minuto a otro. Si tenía un boleto para este vuelo ayer, eso no significa que pueda subir al mismo vuelo mañana sin un nuevo boleto. Si estoy conectado a mi cuenta de Google y alguien comparte un documento conmigo, no estaba autorizado para verlo hace un momento y ahora sí lo estoy. Entonces, la autorización responde a la pregunta: ¿se le permite a esta persona autenticada hacer lo que está intentando? ¿Qué tiene que ver esto con el acceso a los servidores? Bueno, si alguna vez has gestionado el acceso a los recursos como persona de Operaciones, has razonado sobre la autenticación de los usuarios y la autorización.

Watch more workshops on topic

De 0 a Autenticación en una hora con ReactJS
React Summit 2023React Summit 2023
56 min
De 0 a Autenticación en una hora con ReactJS
WorkshopFree
Kevin Gao
Kevin Gao
La autenticación sin contraseña puede parecer compleja, pero es simple de agregar a cualquier aplicación utilizando la herramienta adecuada. Hay múltiples alternativas que son mucho mejores que las contraseñas para identificar y autenticar a tus usuarios, incluyendo SSO, SAML, OAuth, Magic Links, One-Time Passwords y Authenticator Apps.
Mientras abordamos los aspectos de seguridad y evitamos errores comunes, mejoraremos una aplicación JS de pila completa (backend Node.js + frontend React) para autenticar a los usuarios con OAuth (inicio de sesión social) y One Time Passwords (correo electrónico), incluyendo:- Autenticación de usuarios - Gestión de interacciones de usuarios, devolviendo JWTs de sesión / actualización- Gestión y validación de sesiones - Almacenamiento seguro de la sesión para solicitudes de cliente posteriores, validación / actualización de sesiones- Autorización básica - extracción y validación de reclamaciones del token JWT de sesión y manejo de autorización en flujos del backend
Al final del masterclass, también exploraremos otros enfoques de implementación de autenticación con Descope, utilizando SDKs de frontend o backend.
Despliegue de aplicaciones React Native en la nube
React Summit 2023React Summit 2023
88 min
Despliegue de aplicaciones React Native en la nube
WorkshopFree
Cecelia Martinez
Cecelia Martinez
Desplegar aplicaciones React Native manualmente en una máquina local puede ser complejo. Las diferencias entre Android e iOS requieren que los desarrolladores utilicen herramientas y procesos específicos para cada plataforma, incluidos los requisitos de hardware para iOS. Los despliegues manuales también dificultan la gestión de las credenciales de firma, las configuraciones de entorno, el seguimiento de las versiones y la colaboración en equipo.
Appflow es la plataforma de DevOps móvil en la nube creada por Ionic. Utilizar un servicio como Appflow para construir aplicaciones React Native no solo proporciona acceso a potentes recursos informáticos, sino que también simplifica el proceso de despliegue al proporcionar un entorno centralizado para gestionar y distribuir tu aplicación en múltiples plataformas. Esto puede ahorrar tiempo y recursos, permitir la colaboración, así como mejorar la confiabilidad y escalabilidad general de una aplicación.
En este masterclass, desplegarás una aplicación React Native para su entrega en dispositivos de prueba Android e iOS utilizando Appflow. También aprenderás los pasos para publicar en Google Play y Apple App Stores. No se requiere experiencia previa en el despliegue de aplicaciones nativas, y obtendrás una comprensión más profunda del proceso de despliegue móvil y las mejores prácticas para utilizar una plataforma de DevOps móvil en la nube para enviar rápidamente a gran escala.
Despliegue de Aplicación MERN Stack en Kubernetes
DevOps.js Conf 2022DevOps.js Conf 2022
152 min
Despliegue de Aplicación MERN Stack en Kubernetes
Workshop
Joel Lord
Joel Lord
Desplegar y gestionar aplicaciones JavaScript en Kubernetes puede volverse complicado. Especialmente cuando una base de datos también debe formar parte del despliegue. MongoDB Atlas ha facilitado mucho la vida de los desarrolladores, sin embargo, ¿cómo se integra un producto SaaS con su clúster de Kubernetes existente? Aquí es donde entra en juego el Operador de MongoDB Atlas. En este masterclass, los asistentes aprenderán cómo crear una aplicación MERN (MongoDB, Express, React, Node.js) localmente y cómo desplegar todo en un clúster de Kubernetes con el Operador de Atlas.
Azure Static Web Apps (SWA) con Azure DevOps
DevOps.js Conf 2022DevOps.js Conf 2022
13 min
Azure Static Web Apps (SWA) con Azure DevOps
WorkshopFree
Juarez Barbosa Junior
Juarez Barbosa Junior
Las Azure Static Web Apps se lanzaron a principios de 2021 y, de forma predeterminada, pueden integrar su repositorio existente y implementar su aplicación web estática desde Azure DevOps. Este masterclass demuestra cómo publicar una Azure Static Web App con Azure DevOps.
Cómo desarrollar, construir e implementar microservicios Node.js con Pulumi y Azure DevOps
DevOps.js Conf 2022DevOps.js Conf 2022
163 min
Cómo desarrollar, construir e implementar microservicios Node.js con Pulumi y Azure DevOps
Workshop
Alex Korzhikov
Andrew Reddikh
2 authors
El masterclass ofrece una perspectiva práctica de los principios clave necesarios para desarrollar, construir y mantener un conjunto de microservicios en el stack Node.js. Cubre los detalles específicos de la creación de servicios TypeScript aislados utilizando el enfoque de monorepo con lerna y yarn workspaces. El masterclass incluye una descripción general y un ejercicio en vivo para crear un entorno en la nube con el framework Pulumi y los servicios de Azure. Las sesiones están dirigidas a los mejores desarrolladores que deseen aprender y practicar técnicas de construcción e implementación utilizando el stack Azure y Pulumi para Node.js.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Elevando Monorepos con los Espacios de Trabajo de npm
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Elevando Monorepos con los Espacios de Trabajo de npm
Top Content
NPM workspaces help manage multiple nested packages within a single top-level package, improving since the release of NPM CLI 7.0. You can easily add dependencies to workspaces and handle duplications. Running scripts and orchestration in a monorepo is made easier with NPM workspaces. The npm pkg command is useful for setting and retrieving keys and values from package.json files. NPM workspaces offer benefits compared to Lerna and future plans include better workspace linking and adding missing features.
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Node Congress 2022Node Congress 2022
26 min
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Top Content
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
Automatizando Todo el Código y las Pruebas con GitHub Actions
React Advanced 2021React Advanced 2021
19 min
Automatizando Todo el Código y las Pruebas con GitHub Actions
Top Content
We will learn how to automate code and testing with GitHub Actions, including linting, formatting, testing, and deployments. Automating deployments with scripts and Git hooks can help avoid mistakes. Popular CI-CD frameworks like Jenkins offer powerful orchestration but can be challenging to work with. GitHub Actions are flexible and approachable, allowing for environment setup, testing, deployment, and custom actions. A custom AppleTools Eyes GitHub action simplifies visual testing. Other examples include automating content reminders for sharing old content and tutorials.
Ajustando DevOps para las Personas sobre la Perfección
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Ajustando DevOps para las Personas sobre la Perfección
Top Content
DevOps is a journey that varies for each company, and remote work makes transformation challenging. Pull requests can be frustrating and slow, but success stories like Mateo Colia's company show the benefits of deploying every day. Challenges with tools and vulnerabilities require careful consideration and prioritization. Investing in documentation and people is important for efficient workflows and team growth. Trust is more important than excessive control when deploying to production.
¿Por qué es tan lento el CI?
DevOps.js Conf 2022DevOps.js Conf 2022
27 min
¿Por qué es tan lento el CI?
Slow CI has a negative impact on productivity and finances. Debugging CI workflows and tool slowness is even worse. Dependencies impact CI and waiting for NPM or YARN is frustrating. The ideal CI job involves native programs for static jobs and lightweight environments for dynamic jobs. Improving formatter performance and linting is a priority. Performance optimization and fast tools are essential for CI and developers using slower hardware.
El estado de la autenticación sin contraseña en la web
JSNation 2023JSNation 2023
30 min
El estado de la autenticación sin contraseña en la web
Passwords are terrible and easily hacked, with most people not using password managers. The credential management API and autocomplete attribute can improve user experience and security. Two-factor authentication enhances security but regresses user experience. Passkeys offer a seamless and secure login experience, but browser support may be limited. Recommendations include detecting Passkey support and offering fallbacks to passwords and two-factor authentication.