python - AWS Cognito como back-end de autenticación Django para el sitio web
amazon-web-services authentication (1)
Si estás leyendo esto, probablemente hayas buscado en Google "aws cognito django" xD.
Solo quiero compartir lo que hice para que esto funcione:
- https://github.com/metametricsinc/django-warrant . Gran paquete de envoltorio cognito aws.
- Asegúrese de entender la estructura actual de su modelo de usuario. Si usa un modelo de usuario personalizado, no olvide
COGNITO_ATTR_MAPPING
usando la configuraciónCOGNITO_ATTR_MAPPING
. Cambie su autenticación para admitir la conectividad de terceros. Cuando obtenga del token Cognito del cliente, conviértalo en su propio token utilizando oAuth / JWT / Session.
Reconsidere su proceso de inicio de sesión / registro. ¿Quieres un registro diferente? El paquete django-warrant lo soporta ...
Al final del día, esta es una GRAN solución para una autenticación rápida.
Mi lectura de Cognito es que se puede usar en lugar de una base de datos de administración de Django para autenticar a los usuarios de un sitio web. Sin embargo, no estoy encontrando ningún ejemplo de sopa de nueces de una aplicación básica "Hello, World" con una pantalla de inicio de sesión que pase por Cognito. Apreciaría mucho si alguien pudiera publicar un artículo que muestre, paso a paso, cómo crear una aplicación Hello World Django y un grupo de usuarios de Cognito, y luego cómo reemplazar la autenticación predeterminada en Django con una llamada a AWS. Cognito
En particular, necesito saber cómo recopilar la información del sitio de administración de Cognito que se necesita para configurar una llamada a la API de Cognito para autenticar a un usuario.
Hay dos casos a considerar: el inicio de sesión del usuario de la aplicación en la aplicación y el inicio de sesión del administrador en la URL del sitio de administración de django. Supongo que me gustaría usar Cognito en ambos casos, de lo contrario, estoy dejando un agujero potencial en el que la URL del administrador utiliza una tecnología de inicio de sesión más débil.
Las respuestas actuales en los foros de AWS y StackExchange dicen:
(1) Es una pérdida de tiempo usar Cognito para autenticar un sitio web, es solo para acceder a los recursos de AWS
(2) No es una pérdida de tiempo. Estoy a punto de rendirme. He llegado al extremo de crear un grupo de usuarios y grupos de usuarios de Cognito de muestra, y de buscar en la web ejemplos adecuados de este caso de uso. (Ninguno encontrado, o no estaría escribiendo.)
(3) https://github.com/capless/warrant , https://github.com/metametricsinc/django-warrant son dos soluciones posibles de los foros de aws.