Authentification unique avec AWS SDK for .NET - AWS SDK for .NET

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Authentification unique avec AWS SDK for .NET

AWS IAM Identity Centerest un service d'authentification unique (SSO) basé sur le cloud qui facilite la gestion centralisée de l'accès SSO à toutes vos applications Comptes AWS et à celles du cloud. Pour plus de détails, consultez le guide de l'utilisateur d'IAM Identity Center.

Si vous ne savez pas comment un SDK interagit avec IAM Identity Center, consultez les informations suivantes.

À un niveau élevé, les SDK interagissent avec IAM Identity Center de la même manière que le modèle suivant :

  1. IAM Identity Center est configuré, généralement via la console IAM Identity Center, et un utilisateur SSO est invité à participer.

  2. Le AWS config fichier partagé sur l'ordinateur de l'utilisateur est mis à jour avec les informations SSO.

  3. L'utilisateur se connecte via IAM Identity Center et reçoit des informations d'identification à court terme pour les autorisations AWS Identity and Access Management (IAM) qui ont été configurées pour lui. Cette connexion peut être initiée via un outil non SDK tel que leAWS CLI, ou par programmation via une application .NET.

  4. L'utilisateur continue à effectuer son travail. Lorsqu'ils exécutent d'autres applications utilisant l'authentification unique, ils n'ont pas besoin de se reconnecter pour ouvrir les applications.

Le reste de cette rubrique fournit des informations de référence pour la configuration et l'utilisationAWS IAM Identity Center. Il fournit des informations supplémentaires et plus avancées que la configuration SSO de base dans. Configurer l'authentification du SDK Si vous débutez dans l'utilisation de l'authentification AWS unique, vous devriez d'abord consulter cette rubrique pour obtenir des informations de base, puis suivre les didacticiels suivants pour voir l'authentification unique en action :

Cette rubrique contient les sections suivantes :

Prérequis

Avant d'utiliser IAM Identity Center, vous devez effectuer certaines tâches, telles que le choix d'une source d'identité et la configuration des applications Comptes AWS et applications pertinentes. Pour plus d'informations, consultez les éléments suivants :

  • Pour obtenir des informations générales sur ces tâches, consultez Getting started dans le guide de l'utilisateur d'IAM Identity Center.

  • Pour des exemples de tâches spécifiques, consultez la liste des didacticiels à la fin de cette rubrique. Assurez-vous toutefois de consulter les informations contenues dans cette rubrique avant d'essayer les didacticiels.

Configuration d'un profil SSO

Une fois le centre d'identité IAM configuré dans le cas correspondantCompte AWS, un profil nommé pour l'authentification unique doit être ajouté au fichier partagé AWS config de l'utilisateur. Ce profil est utilisé pour se connecter au portail AWS d'accès, qui renvoie des informations d'identification à court terme pour les autorisations IAM configurées pour l'utilisateur.

Le config fichier partagé est généralement nommé %USERPROFILE%\.aws\config sous Windows, Linux et macOS. ~/.aws/config Vous pouvez utiliser votre éditeur de texte préféré pour ajouter un nouveau profil d'authentification unique. Vous pouvez également utiliser la aws configure sso commande. Pour plus d'informations sur cette commande, consultez la section Configuration de la AWS CLI pour utiliser IAM Identity Center dans le guide de l'AWS Command Line Interfaceutilisateur.

Le nouveau profil est similaire au suivant :

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 123456789012 sso_role_name = SSOReadOnlyRole

Les paramètres du nouveau profil sont définis ci-dessous. Les deux premiers paramètres définissent le portail AWS d'accès. Les deux autres paramètres constituent une paire qui, ensemble, définit les autorisations configurées pour un utilisateur. Les quatre réglages sont obligatoires.

sso_start_url

URL pointant vers le portail d'AWSaccès de l'organisation. Pour trouver cette valeur, ouvrez la console IAM Identity Center, sélectionnez Paramètres et recherchez l'URL du portail.

sso_region

Celui Région AWS qui contient l'hôte du portail d'accès. Il s'agit de la région qui a été sélectionnée lorsque vous avez activé IAM Identity Center. Elle peut être différente des régions que vous utilisez pour d'autres tâches.

Pour une liste complète des Régions AWS et de leurs codes, consultez la section Points de terminaison régionaux dans le Référence générale d'Amazon Web Services.

sso_account_id

L'ID d'un Compte AWS fichier ajouté par le biais du AWS Organizations service. Pour consulter la liste des comptes disponibles, accédez à la console IAM Identity Center et ouvrez la Comptes AWSpage. L'identifiant de compte que vous choisissez pour ce paramètre correspond à la valeur que vous prévoyez d'attribuer au sso_role_name paramètre, qui est indiquée ci-dessous.

sso_role_name

Nom d'un ensemble d'autorisations IAM Identity Center. Cet ensemble d'autorisations définit les autorisations accordées à un utilisateur par le biais d'IAM Identity Center.

La procédure suivante permet de trouver la valeur de ce paramètre.

  1. Accédez à la console IAM Identity Center et ouvrez la Comptes AWSpage.

  2. Choisissez un compte pour en afficher les détails. Le compte que vous choisirez sera celui qui contient l'utilisateur ou le groupe SSO auquel vous souhaitez accorder des autorisations SSO.

  3. Consultez la liste des utilisateurs et des groupes affectés au compte et trouvez l'utilisateur ou le groupe qui vous intéresse. L'ensemble d'autorisations que vous spécifiez dans le sso_role_name paramètre est l'un des ensembles associés à cet utilisateur ou à ce groupe.

Lorsque vous attribuez une valeur à ce paramètre, utilisez le nom de l'ensemble d'autorisations, et non l'Amazon Resource Name (ARN).

Les ensembles d'autorisations sont associés à des politiques IAM et à des politiques d'autorisations personnalisées. Pour plus d'informations, consultez la section Ensembles d'autorisations dans le guide de l'utilisateur d'IAM Identity Center.

Génération et utilisation de jetons SSO

Pour utiliser l'authentification unique, un utilisateur doit d'abord générer un jeton temporaire, puis utiliser ce jeton pour accéder aux AWS applications et aux ressources appropriées. Pour les applications .NET, vous pouvez utiliser les méthodes suivantes pour générer et utiliser ces jetons temporaires :

  • Créez des applications .NET qui génèrent d'abord un jeton, si nécessaire, puis utilisez-le.

  • Générez un jeton avec le, AWS CLI puis utilisez-le dans les applications .NET.

Ces méthodes sont décrites dans les sections suivantes et démontrées dans les didacticiels.

Important

Votre application doit référencer les NuGet packages suivants pour que la résolution SSO puisse fonctionner :

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Le fait de ne pas référencer ces packages entraînera une exception d'exécution.

Cette section explique comment créer une application .NET qui génère un jeton SSO temporaire, si nécessaire, puis utilise ce jeton. Pour un didacticiel complet de ce processus, voirTutoriel pour l'authentification unique utilisant uniquement des applications .NET.

Générer et utiliser un jeton SSO par programmation

En plus d'utiliser leAWS CLI, vous pouvez également générer un jeton SSO par programmation.

Pour ce faire, votre application crée un AWSCredentialsobjet pour le profil SSO, qui charge les informations d'identification temporaires si elles sont disponibles. Votre application doit ensuite convertir l'AWSCredentialsobjet en SSOAWSCredentialsobjet et définir certaines propriétés d'options, notamment une méthode de rappel utilisée pour demander à l'utilisateur de fournir des informations de connexion, si nécessaire.

Cette méthode est illustrée dans l'extrait de code suivant.

Important

Votre application doit référencer les NuGet packages suivants pour que la résolution SSO puisse fonctionner :

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Le fait de ne pas référencer ces packages entraînera une exception d'exécution.

static AWSCredentials LoadSsoCredentials() { var chain = new CredentialProfileStoreChain(); if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials)) throw new Exception("Failed to find the my-sso-profile profile"); var ssoCredentials = credentials as SSOAWSCredentials; ssoCredentials.Options.ClientName = "Example-SSO-App"; ssoCredentials.Options.SsoVerificationCallback = args => { // Launch a browser window that prompts the SSO user to complete an SSO sign-in. // This method is only invoked if the session doesn't already have a valid SSO token. // NOTE: Process.Start might not support launching a browser on macOS or Linux. If not, // use an appropriate mechanism on those systems instead. Process.Start(new ProcessStartInfo { FileName = args.VerificationUriComplete, UseShellExecute = true }); }; return ssoCredentials; }

Si aucun jeton SSO approprié n'est disponible, la fenêtre du navigateur par défaut est ouverte et la page de connexion appropriée est ouverte. Par exemple, si vous utilisez IAM Identity Center comme source d'identité, l'utilisateur voit une page de connexion similaire à la suivante :

AWS IAM Identity Centerpage de connexion.
Note

La chaîne de texte que vous indiquez ne SSOAWSCredentials.Options.ClientName peut pas comporter d'espaces. Si la chaîne contient des espaces, vous obtiendrez une exception d'exécution.

Tutoriel pour l'authentification unique utilisant uniquement des applications .NET

Cette section explique comment générer un jeton SSO temporaire à l'aide duAWS CLI, et comment utiliser ce jeton dans une application. Pour un didacticiel complet de ce processus, voirTutoriel d'authentification unique à l'aide des applications .NET AWS CLI et .NET.

Générez un jeton SSO à l'aide du AWS CLI

En plus de générer un jeton SSO temporaire par programmation, vous utilisez le AWS CLI pour générer le jeton. Les informations suivantes vous montrent comment procéder.

Une fois que l'utilisateur a créé un profil compatible SSO, comme indiqué dans la section précédente, il exécute la aws sso login commande à partir du. AWS CLI Ils doivent veiller à inclure le --profile paramètre dans le nom du profil compatible SSO. comme illustré dans l'exemple suivant :

aws sso login --profile my-sso-profile

Si l'utilisateur souhaite générer un nouveau jeton temporaire après l'expiration du jeton actuel, il peut exécuter à nouveau la même commande.

Utiliser le jeton SSO généré dans une application .NET

Les informations suivantes vous montrent comment utiliser un jeton temporaire qui a déjà été généré.

Important

Votre application doit référencer les NuGet packages suivants pour que la résolution SSO puisse fonctionner :

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Le fait de ne pas référencer ces packages entraînera une exception d'exécution.

Votre application crée un AWSCredentialsobjet pour le profil SSO, qui charge les informations d'identification temporaires générées précédemment par leAWS CLI. Cette méthode est similaire aux méthodes présentées dans Accès aux informations d'identification et aux profils dans une application et se présente sous la forme suivante :

static AWSCredentials LoadSsoCredentials() { var chain = new CredentialProfileStoreChain(); if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials)) throw new Exception("Failed to find the my-sso-profile profile"); return credentials; }

L'AWSCredentialsobjet est ensuite transmis au constructeur pour un client de service. Par exemple :

var S3Client_SSO = new AmazonS3Client(LoadSsoCredentials());
Note

L'utilisation AWSCredentials pour charger des informations d'identification temporaires n'est pas nécessaire si votre application a été conçue pour utiliser le [default] profil pour l'authentification unique. Dans ce cas, l'application peut créer des clients de AWS service sans paramètres, comme « var client = new AmazonS3Client(); ».

Tutoriel d'authentification unique à l'aide des applications .NET AWS CLI et .NET

Ressources supplémentaires

Pour obtenir de l'aide supplémentaire, consultez les ressources suivantes.