Tengo una aplicación de línea de comandos que quiero autenticar contra AWS Cognito usando OAuth2 con flujo de código de acceso y UI de inicio de sesión alojada. Para el caso similar, los documentos de Google Cloud recomiendan explícitamente el uso de {{X0 }} redirigir URI, para que la aplicación pueda manejar el código de acceso después de la autenticación:

Este flujo de autorización es similar al que se usa para las aplicaciones del servidor web. La principal diferencia es que las aplicaciones instaladas deben abrir el navegador del sistema y proporcionar un URI de redireccionamiento local para manejar las respuestas del servidor de autorización de Google.

Sin embargo, con Cognito localhost, los URI solo se permiten / recomiendan con fines de prueba:

Cognito App Callback

Una solución alternativa sería usar un URI "fuera del navegador" urn:ietf:wg:oauth:2.0:oob para mostrar el código de acceso en el navegador y hacer que el usuario lo copie y pegue en la aplicación, pero Cognito no parece admitirlo.

Actualmente me inclino por ejecutar un controlador de devolución de llamada OAuth2 personalizado que solo le diría al usuario que copie y pegue el código de acceso, pero no lo encuentro realmente amigable desde el lado de Cognito.

Entonces, la pregunta:

  1. ¿Cuál es la forma recomendada de autenticar aplicaciones de escritorio / línea de comandos con Cognito con una mínima interferencia del usuario?
  2. ¿Qué puede salir mal si ignoro la recomendación de Cognito sobre el URI de redireccionamiento de localhost?
0
bereal 29 ago. 2020 a las 16:36

1 respuesta

La mejor respuesta

URI de LOOPBACK

En una aplicación de escritorio, puede usar las URL HTTP de localhost para recibir la respuesta de autorización, y esa es una técnica válida.

La advertencia de Cognito trata sobre el uso de URL de host local para las respuestas de la aplicación web, lo que, por supuesto, solo es adecuado para una PC de desarrollador. Puede ignorar la advertencia cuando utilice aplicaciones de escritorio de bucle invertido.

FUERA DE URI DEL NAVEGADOR

Esto se usó hace unos años para leer una respuesta de autorización desde una vista web y ya no se recomienda en OAuth para Aplicaciones nativas.

ESQUEMA PRIVADO DE URI

La segunda técnica válida es la opción que prefiero, ya que se siente más integrada. Implica recibir la respuesta de autorización a través de una URL del siguiente formulario y registrar el esquema con el sistema operativo para que apunte a su aplicación:

  • com.miempresa.mydesktopapp: / callback

RECURSOS DE MINAS

Si ayuda, tengo un par de muestras de escritorio / publicaciones de blog que usan Cognito. Puede ejecutar las muestras en su PC para ver cuál prefiere:

2
Gary Archer 30 ago. 2020 a las 16:42