Définition des serveurs de ressources de votre groupe d'utilisateurs - Amazon Cognito

Définition des serveurs de ressources de votre groupe d'utilisateurs

Une fois que vous avez configuré un domaine pour votre groupe d'utilisateurs, Amazon Cognito alloue une interface utilisateur web hébergée qui autorise l'ajout de pages d'inscription et de connexion à votre application. Pour de plus amples informations, veuillez consulter Étape 2. Ajout d'une application pour activer l'interface utilisateur web hébergée.

Un serveur de ressources est un serveur dédié aux ressources à accès protégé. Il traite les demandes authentifiées à partir d'une application détenant un jeton d'accès. En général, le serveur de ressources fournit une API CRUD pour la création de ces demandes d'accès. Cette API peut être hébergée dans Amazon API Gateway ou en dehors d'AWS. L'application transmet le jeton d'accès dans l'appel d'API au serveur de ressources. L'application doit traiter le jeton d'accès en opacité lorsqu'elle le transmet dans la demande d'accès. Le serveur de ressources inspecte le jeton d'accès pour déterminer si l'accès doit être accordé.

Note

Votre serveur de ressources doit vérifier la signature et la date d'expiration du jeton d'accès avant de traiter toute réclamation à l'intérieur du jeton. Pour plus d'informations sur la vérification et l'utilisation des jetons de groupe d'utilisateurs, consultez Intégration des groupes d'utilisateurs Amazon Cognito avec API Gateway sur le blog AWS. Amazon API Gateway est une bonne option pour inspecter les jetons d'accès et protéger vos ressources. Pour plus d'informations sur les mécanismes d'autorisation Lambda API Gateway, consultez Utilisation des mécanismes d'autorisation Lambda API Gateway.

Une portée est un niveau d'accès qu'une application peut demander à une ressource. Par exemple, si vous disposez d'un serveur de ressources pour les photos, il peut définir deux portées : une pour lire l'accès aux photos et un pour écrire/supprimer l'accès. Lorsque l'application envoie un appel d'API pour demander l'accès et transmet un jeton d'accès, une ou plusieurs portées sont intégrées au jeton.

Présentation

Amazon Cognito permet aux développeurs d'applications de créer leurs propres serveurs de ressources OAuth 2.0, et d'y définir des portées personnalisées. Les portées personnalisées peuvent être ensuite associées à un client, et le client peut les demander dans le flux d'octroie de code d'autorisation OAuth 2.0, le flux implicite et le flux d'informations d'identification. Les portées personnalisés sont ajoutées dans la réclamation de scope dans le jeton d'accès. Un client peut utiliser le jeton d'accès sur son serveur de ressources, ce qui base la décision d'autorisation sur les portées présentes dans le jeton. Pour plus d'informations sur la portée du jeton d'accès, consultez Utilisation de jetons avec des groupes d'utilisateurs.

Note

Votre serveur de ressources doit vérifier la signature et la date d'expiration du jeton d'accès avant de traiter toute réclamation à l'intérieur du jeton.

Note

Une application client peut uniquement utiliser le flux d'informations d'identification du client si l'application contient une clé secrète du client.

Gestion du serveur de ressources et des portées personnalisées

Lors de la création d'un serveur de ressources, vous devez fournir un nom et un identifiant de serveur de ressources. Pour chaque portée que vous créez dans le serveur de ressources, vous devez fournir le nom et la description de la portée.

Exemple :

  • Name : nom convivial du serveur de ressources, tel que Weather API ou Photo API.

  • Identifier : identifiant unique du serveur de ressources. Il peut s'agir d'un point de terminaison HTTPS om se trouve votre serveur de ressources. Par exemple, https://my-weather-api.example.com

  • Scope Name: le nom de la portée. Par exemple, weather.read

  • Scope Description : une brève description de la portée. Par exemple, Retrieve weather information.

Lorsqu'une application client demande une portée personnalisée dans un flux OAuth2.0, elle doit demander l'identifiant complet de la portée, qui est resourceServerIdentifier/scopeName. Par exemple, si l'identifiant du serveur de ressources est https://myphotosapi.example.com et que le nom de la portée est photos.read, l'application client doit demander https://myphotosapi.example.com/photos.read lors de l'exécution.

La suppression d'une portée d'un serveur de ressources ne supprime pas son association avec tous les clients ; la suppression de la portée la rend inactive. Si une application client demande la portée supprimée lors de l'exécution, la portée est ignorée et n'est pas incluse dans le jeton d'accès. Si la portée est de nouveau ajoutée ultérieurement, elle est de nouveau incluse dans le jeton d'accès.

Si une portée est supprimée à partir d'un client, l'association entre le client et la portée est supprimée. Si un client demande une portée non autorisée ors de l'exécution, une erreur se produit et aucun jeton d'accès n'est émis.

Vous pouvez utiliser la AWS Management Console, l'API et la CLI pour définir les serveurs de ressources et les portées de votre groupe d'utilisateurs.

Définition d'un serveur de ressources pour votre groupe d'utilisateurs (AWS Management Console)

Vous pouvez utiliser la AWS Management Console pour définir un serveur de ressources pour votre groupe d'utilisateurs.

Original console

Pour définir un serveur de ressources

  1. Connectez-vous à la console Amazon Cognito. Si vous y êtes invité, saisissez vos informations d'identification AWS.

  2. Dans le volet de navigation, choisissez Gérer vos groupes d'utilisateurs, puis le groupe d'utilisateurs à modifier.

  3. Choisissez l'onglet Serveurs de ressources.

  4. Choisissez Ajouter un serveur de ressources.

  5. Saisissez le nom de votre serveur de ressources. Par exemple : «  », Photo Server.

  6. Saisissez l'identifiant de votre serveur de ressources. Par exemple : «  », com.example.photos.

  7. Saisissez les noms des portées personnalisées pour vos ressources, tels que read et write

  8. Pour chacun des noms de portée, saisissez une description, telles que view your photos et update your photos

  9. Choisissez Enregistrer les modifications.

Chacune des portées personnalisées que vous définissez apparaît dans l'onglet Paramètres du client d'application sous Portées personnalisées autorisées OAuth 2.0, par exemple, com.example.photos/read.

New console

Pour définir un serveur de ressources

  1. Connectez-vous à la console Amazon Cognito.

  2. Dans le volet de navigation, choisissez Groupes d'utilisateurs, puis le groupe d'utilisateurs à modifier.

  3. Cliquez sur l'onglet Intégration d'applications et localisez Serveurs de ressources.

  4. Choisissez Créer un serveur de ressources.

  5. Saisissez un nom du serveur de ressources. Par exemple, Photo Server.

  6. Saisissez un Identifiant de serveur de ressources. Par exemple, com.example.photos.

  7. Saisissez les noms des portées personnalisées de vos ressources, tels que read et write.

  8. Pour chacun des noms de portée, saisissez une description, telles que view your photos et update your photos.

  9. Choisissez Créer.

Vos portées personnalisées peuvent être examinées dans l'onglet Intégration d'applications sous Serveurs de ressources dans Portées personnalisées. Les portées personnalisées peuvent être activées pour les clients d'application à partir de l'onglet Intégration d'applications sous Clients d'application. Sélectionnez un client d'application, recherchez Paramètres d'interface utilisateur hébergée et choisissez Modifier. Ajout des portées personnalisées et choisissez Enregistrez les modifications.

Définition d'un serveur de ressources pour votre groupe d'utilisateurs (AWS CLI et API AWS)

Utilisez les commandes suivantes pour spécifier les paramètres de serveur de ressources pour votre groupe d'utilisateurs.

Pour créer un serveur de ressources

Pour obtenir des informations sur les paramètres de votre serveur de ressources

Pour répertorier des informations sur tous les serveurs de ressources pour votre groupe d'utilisateurs

Pour supprimer un serveur de ressources

Pour mettre à jour les paramètres d'un serveur de ressources