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 :
-
IAM Identity Center est configuré, généralement via la console IAM Identity Center
, et un utilisateur SSO est invité à participer. -
Le AWS
config
fichier partagé sur l'ordinateur de l'utilisateur est mis à jour avec les informations SSO. -
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.
-
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.
-
Accédez à la console IAM Identity Center
et ouvrez la Comptes AWSpage. -
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.
-
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 AWSCredentials
objet pour le profil SSO, qui charge les informations d'identification temporaires si elles sont disponibles. Votre application doit ensuite convertir l'AWSCredentials
objet en SSOAWSCredentials
objet 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 themy-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 :
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 AWSCredentials
objet 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 themy-sso-profile
profile"); return credentials; }
L'AWSCredentials
objet 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.