Seguridad

Gestión de inicio de sesión de OAuth

Gestión de inicio de sesión de OAuth

Cosas importantes que necesita saber sobre OAuth

OAuth es algo que todo desarrollador debe conocer. Si está creando una aplicación independiente o una aplicación de terceros que se integra con algún otro servicio HTTP, necesita saber cómo funciona OAuth para proporcionar a sus usuarios un servicio fácil de usar y bien integrado.

La idea es permitir que las aplicaciones cliente tengan un acceso limitado a la información del usuario sin tener que compartir las credenciales o la contraseña del usuario. El marco de OAuth es responsable de los intercambios que se requieren antes de que una aplicación obtenga su información.

Suponga que desea registrarse en Dev.a (que es un gran lugar para que los desarrolladores intercambien ideas) te permiten registrarte usando tu cuenta de GitHub. Como pasa eso? ¿Cómo sabrían que eres propietario de la cuenta de GitHub con la que te estás registrando??

Más importante aún, ¿cómo se asegura de que Dev.no está sobrepasando sus límites cuando se trata de su información almacenada con GitHub?

Participantes de OAuth

Nos ceñiremos al ejemplo del complemento GitHub del editor Atom que permite a los desarrolladores enviar código a GitHub directamente usando la interfaz Atom. La razón de esto como ejemplo es porque GitHub no oculta los detalles detrás de la escena y puedes ver lo que está pasando debajo del capó.

Antes de entrar en las minucias del funcionamiento de OAuth. Preparemos el escenario reconociendo a todos los participantes en el intercambio:

  1. Propietario o usuario del recurso: Este usuario es aquel cuya información de cuenta necesita ser accedida (leer y / o escribir) para que funcione con una aplicación.
  2. Cliente: Esta es la aplicación que solicita su permiso para acceder a su información desde un servicio diferente. En nuestro ejemplo, el editor Atom es el cliente.
  3. Recurso: El recurso es su información real que se encuentra en los servidores en alguna ubicación remota. Se puede acceder a esto a través de una API si el cliente tiene los permisos adecuados.
  4. Servidor de autorización: También interconectado a través de una API. Este servidor es mantenido por el proveedor de servicios (GitHub en nuestro ejemplo). Tanto el servidor de autorización como el servidor de recursos se denominan API porque son administrados por una entidad, en este caso GitHub, y se exponen como API al desarrollador del cliente.

Registro de OAuth

El proceso comienza cuando se desarrolla la aplicación Cliente. Puede ir al proveedor de recursos e inscribirse en el portal de su desarrollador o en la sección API del sitio web. También deberá proporcionar una URL de devolución de llamada a la que se redirigirá al usuario después de aceptar o rechazar para otorgar a la aplicación los permisos necesarios.

Por ejemplo, si va a GitHub → Configuración → Configuración de desarrollador y hace clic en "Registrar una nueva aplicación". Esto le proporcionaría una Identificación del cliente que puede hacerse público y Secreto del cliente que, la organización de desarrolladores debe mantener ... bueno, un secreto.

Después de que se le proporcione el ID de cliente y el secreto, el desarrollador, deber Manténgalos seguros y protegidos, ya que el servidor de autorización no los volverá a mostrar. Lo mismo ocurre con cualquier otro token que se arroje (más sobre tokens más adelante).

Flujo de trabajo de OAuth 2

Has registrado tu solicitud. Ha sido desarrollado y probado y ahora los usuarios están listos para usarlo. Un nuevo usuario al registrarse en su servicio se le mostrará la opción de "Iniciar sesión con GitHub". este es el primer paso.

Paso 1: solicitud de autorización

La solicitud de autorización es la parte donde se abre una nueva ventana (o un mensaje similar) con la página web de recursos y pide a los usuarios que inicien sesión. Si ya ha iniciado sesión en ese dispositivo, este paso se omite y GitHub simplemente le pregunta si desea dar acceso a la aplicación cliente Atom. Esto es mucho más transparente en el caso de Atom porque te piden que vayas manualmente al sitio web de GitHub y les concedas el permiso.

Al visitar la URL, se le solicita el permiso.

Observe la URL que muestra que esta es una página web segura (HTTPS) de GitHub.C ª. Ahora usted, el usuario, puede estar seguro de que está interactuando directamente con GitHub. Atom simplemente está esperando, bastante apartado.

A diferencia de Atom, la mayoría de las aplicaciones cliente cargan automáticamente la página de inicio de sesión o permisos. Si bien esto es muy conveniente, también se puede usar incorrectamente si la aplicación cliente decide abrir un enlace de phishing. Para evitar esto, siempre debe verificar la URL a la que es redirigido y asegurarse de que sea la URL correcta y esté utilizando el protocolo HTTPS.

Paso 2: obtener la concesión de autorización

Para notificar al cliente Atom, se le entrega un token (una concesión de autorización) que luego se envía al cliente Atom.

Una vez que el usuario hace esto, el trabajo del usuario está terminado. (De hecho, un usuario típico ni siquiera es consciente del intercambio de concesión de autorización. Se eligió el ejemplo de GitHub para mostrar que esto es lo que sucede).

Paso 3: obtener el token de acceso

La concesión de autorización todavía no es la entidad que le da al cliente acceso a la información del usuario. Que se obtiene usando algo llamado token de acceso. Que la aplicación cliente intentará obtener en este paso.

Para hacer esto, el cliente ahora tendrá que proporcionar la concesión de autorización al servidor de autorización junto con una prueba de su propia identidad. La identidad se verifica utilizando el ID de cliente y el secreto del cliente que se proporcionaron a la aplicación cliente anteriormente.

La verificación de identidad se realiza para garantizar que el usuario no sea engañado para que use una aplicación nefasta que pretende ser una aplicación legítima. Por ejemplo, si alguien decide nombrar su ejecutable como Atom con el mismo nombre, logotipo y funcionalidad, el usuario puede ser engañado para que le dé acceso a un cliente que puede hacer un mal uso de su información. Pueden fisgonear o incluso actuar sin su consentimiento. El servidor de autorización asegura que el cliente es realmente lo que parece para sus usuarios.

Una vez que se verifica la identidad y se acepta la concesión de autorización, el servidor de autorización lanza un token a la aplicación cliente. Piense en el token como una combinación de nombre de usuario y contraseña que se le puede dar al servidor de recursos para acceder a un recurso protegido en particular al que el propietario del recurso le permitió acceder.

Finalmente, al usar este token, la aplicación ahora puede obtener acceso a la información de usuario requerida y otros recursos del servidor de recursos.

Observe cómo en todo este intercambio el nombre de usuario y la contraseña reales nunca se compartieron con el cliente? Esa es la belleza de OAuth. En lugar de proporcionar un nombre de usuario y contraseñas que otorgarían a la aplicación todo el acceso al recurso, utiliza tokens. Y un token solo puede obtener un acceso limitado al recurso.

Revocación de permisos

Suponga que pierde el acceso a su dispositivo que tenía la aplicación de cliente autorizada en él. Puede iniciar sesión en GitHub e ir a Configuración → Aplicaciones → Aplicaciones OAuth autorizadas para revocar la concesión de autorización y el token de acceso. Haré lo mismo, ya que, en las capturas de pantalla anteriores, la concesión de autorización se mostró públicamente.

Ahora que tiene una vista de pájaro de cómo OAuth 2.Puede leer más sobre las concesiones de autorización y otros detalles más finos del protocolo y cómo se realizan las llamadas a la API aquí.

Controle y administre el movimiento del mouse entre múltiples monitores en Windows 10
Administrador de mouse de doble pantalla le permite controlar y configurar el movimiento del mouse entre varios monitores, al ralentizar sus movimient...
WinMouse le permite personalizar y mejorar el movimiento del puntero del mouse en una PC con Windows
Si desea mejorar las funciones predeterminadas del puntero del mouse, use el software gratuito WinMouse. Agrega más funciones para ayudarlo a aprovech...
El botón de clic izquierdo del mouse no funciona en Windows 10
Si está utilizando un mouse dedicado con su computadora portátil o computadora de escritorio, pero el el botón izquierdo del mouse no funciona en Wind...