Bonjour AWS – Module d'authentification
J'ai récemment lancé une nouvelle série sur Youtube appelée HelloAWS. Pour accompagner les vidéos, j'ai pensé qu'il serait utile de créer une série de blogs qui se suivent – dans un blog, je peux ajouter autant de détails que je veux sans craindre de dépasser le temps imparti. Tout comme les vidéos, cette série sera centrée sur AWS et sur la façon d'utiliser leurs services dans Mendix.
Nous avons travaillé dur pour créer un tas de connecteurs pour rendre Services AWS plus facile à utiliser de manière low-code. Dans cette série, je vais aborder le fonctionnement de chacun de ces modules et vous montrer comment les utiliser dans votre Mendix
Si vous souhaitez utiliser l'un de ces nouveaux connecteurs géniaux, vous devrez d'abord authentifier votre Mendix application utilisant le module d'authentification AWS, nous allons donc y jeter un œil dans cette vidéo.
Un aperçu rapide des modules et connecteurs AWS que je vais aborder dans cette série :
- Authentification AWS
- Amazon Reconnaissance
- AWS Lambda
- Amazon DynamoDB
- Amazon SNS
- Extrait d'Amazon
- Amazon Polly
- Amazon Traduire
- Amazon S3
- Amazon Event Bridge
Télécharger
Pour commencer à configurer cela, nous pouvons cliquer sur l'icône du panier d'achat dans Studio Pro pour ouvrir le panneau de la place de marché dans la fenêtre latérale. Recherchez le « AWS Authentication Connector » et cliquez pour l'ouvrir. Ensuite, nous pouvons cliquer sur Télécharger, puis choisir de l'ajouter en tant que nouveau module, puis cliquer sur Importer pour confirmer.
Informations d'identification statiques ou de session
Dans la description de la Marketplace, il est indiqué que ce module prend en charge deux formes d'authentification avec AWS. Tout d'abord, nous avons des informations d'identification statiques, puis nous avons des informations d'identification basées sur la session.
Quelle est la différence ?
Informations d'identification statiques fonctionne à l'aide d'une combinaison de clé d'accès et de clé secrète et peut être plus familière à la plupart des développeurs. Cependant, cette méthode est moins sécurisée. Si quelqu'un accède à ces informations d'identification, votre application peut être en danger.
Informations d'identification basées sur la session fonctionne à l'aide de jetons à durée de vie limitée qui ne sont valables que pendant une courte période. Cela fonctionne en établissant une confiance au préalable à l'aide de la nouvelle fonctionnalité Roles Anywhere d'AWS. Une fois la confiance établie, vous pouvez générer des en-têtes sigv4 pour signer vos demandes à AWS.
Que sont les en-têtes sigv4 ?
Signature Version 4 est le protocole de signature AWS, qui est requis pour autoriser les demandes d'API REST pour les services AWS. En d'autres termes, il s'agit d'en-têtes spéciaux que vous devez ajouter à votre appel REST afin de vous connecter en toute sécurité à AWS.
Créer une ancre de confiance
Nous allons nous connecter à la console AWS pour la prochaine partie de cette version. Une fois connecté, recherchez des rôles n'importe où dans la barre de recherche.
Ici, nous devons créer un rôle dans les rôles n'importe où. Il s'agit d'un processus rapide en trois étapes. Tout d'abord, nous devons créer une ancre de confiance. Cliquez donc sur le bouton.
Assurez-vous que votre région en haut de l'écran est correcte, car elle doit correspondre à votre projet AWS et plus tard à votre Mendix app.
Entrez ensuite un nom pour votre Trust Anchor : « HelloAWS ». Nous devons maintenant fournir une autorité de certification. Nous pouvons soit utiliser AWS Certificate Manager pour créer une autorité de certification privée, soit créer la nôtre.
Pour plus d'informations sur la création de votre propre CA, lire ce blog de mon collègue Joe Robertson sur la façon de se connecter en toute sécurité aux services AWS.
Ensuite, nous devons sélectionner « Télécharger un ensemble de certificats externes », puis nous pouvons ouvrir nos certificats dans un éditeur de texte. Copiez tout dans le certificat, y compris le Commencer et Fin lignes de certificat, puis collez-le dans l'espace. Pour confirmer, cliquez sur « créer une ancre de confiance » en bas de l'écran
Créer un utilisateur IAM
La deuxième étape de ce processus consiste à créer un nouveau rôle IAM. Avant de le faire, nous devons créer un profil pour ce rôle. Cliquez sur configurer un profil
À l’étape 2, cliquez sur « Créer un nouveau rôle ». Choisissez ensuite de créer une politique de confiance personnalisée et collez ce JSON :
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"Service":"rolesanywhere.amazonaws.com"
},
"Action":[
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
Vous devez ensuite ajouter des autorisations pour cette politique et c'est dans cette partie que vous sélectionnez les services AWS que vous souhaitez utiliser. Je vais choisir Amazon Rekognition car je l'utiliserai dans ma prochaine vidéo. Je vais sélectionner l'option d'accès complet, mais vous devez la limiter à ce dont votre application a besoin dans un scénario réel. Enfin, entrez un nom pour votre nouveau rôle (je vais nommer le mien HelloAWS) et cliquez sur « créer un rôle » en bas.
La dernière étape dans la console AWS consiste à créer un profil à l'aide de ce rôle que nous venons de créer. Sur le tableau de bord Rôles partout, faites défiler jusqu'aux politiques et nous en créerons une. Donnez-lui simplement un nom, sélectionnez le rôle que nous avons créé, attachez les politiques que vous souhaitez (je vais à nouveau utiliser Amazon Rekognition ici), puis cliquez sur « créer » en bas de l'écran.
Obtention des identifiants de session
Nous pouvons maintenant appeler directement notre action pour obtenir les informations d'identification de session où nous le souhaitons. Si j'ouvre cela dans Studio Pro, vous pouvez voir qu'il attend quelques détails de la console AWS. Il attend essentiellement tout ce que nous venons de configurer et vous les fournissez principalement sous forme d'ARN pour le rôle, le profil et l'ancre de confiance.
Après cela, nous pouvons transmettre les informations d'identification à l'action d'en-têtes GetSigv4, qui produira les en-têtes pour signer nos demandes.
Il est important de noter que si vous utilisez ce module avec un autre, par exemple celui d'Amazon Rekognition, vous ne devez pas l'appeler directement. Au lieu de cela, le module Amazon Rekognition est déjà configuré pour le faire et s'attend uniquement à ce que vous configuriez l'application appropriée à l'aide de constantes.
Téléchargement du certificat
La dernière et dernière chose que vous devez faire est de vous assurer que votre Mendix L'application a accès à la même autorité de certification que celle que nous avons téléchargée dans la console AWS. Nous devons fournir un chemin d'accès au fichier du certificat. Il est très important de noter ici qu'AWS attendait ce certificat au format .pem, mais Mendix s'attend à ce qu'il soit au format .pfx. Une fois de plus, le blog de Joe Robertson explique exactement comment procéder en détail. Si votre certificat est au bon format, il nous suffit de fournir le chemin d'accès au fichier où il se trouve sur votre lecteur ainsi que le mot de passe que vous avez défini pour le certificat lorsque vous l'avez converti au format pfx. Si vous déployez votre application sur le cloud, vous devrez également le configurer sur la plateforme cloud.
Appel du module dans un microflow
Enfin, vous pouvez appeler les actions pour obtenir vos identifiants, je peux exécuter mon application et la tester. Jetez un œil aux captures d'écran ci-dessous pour voir comment cela fonctionne – ou mieux encore, regardez la vidéo si vous ne l'avez pas encore fait.
Conclusion
Il est important de noter que vous n'avez pas à vous soucier de créer vos propres en-têtes Sigv4 ou même d'appeler l'action d'obtention des informations d'identification lorsque vous utilisez l'un des autres connecteurs. Les autres connecteurs ont été conçus pour s'en occuper à votre place, à condition que vous preniez soin de configurer correctement toutes les constantes requises. Ils obtiendront automatiquement les informations d'identification pour vous. Dans la prochaine mise à jour de cette série, je m'intéresserai à Amazon Rekognition et à la façon d'utiliser l'action Détecter les étiquettes personnalisées à partir du connecteur AWS Rekognition.
N'oubliez pas que si vous êtes bloqué à un moment donné, assurez-vous de consulter la documentation sur nos pages de documentation et sur celles d'AWS. Nous avons essayé de vous fournir autant d'informations que possible pour assurer votre réussite. Je vous recommande également de suivre le Mendix Atelier sur AWS.
Rendez-vous au prochain !