Obtenir l'empreinte numérique d'un fournisseur d'identité OpenID Connect - AWS Identity and Access Management

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.

Obtenir l'empreinte numérique d'un fournisseur d'identité OpenID Connect

Lorsque vous créez un fournisseur d'identité OpenID Connect (OIDC) dans la console IAM, vous devez fournir une empreinte numérique. IAM requiert l'empreinte numérique de l'autorité de certification (CA) intermédiaire supérieure qui a signé le certificat utilisé par le fournisseur d'identité (IdP) externe. L'empreinte est une signature pour le certificat de l'autorité de certification qui a été utilisé pour émettre le certificat pour l'IdP compatible avec OIDC. Lorsque vous créez un fournisseur d'identité IAM OIDC, vous faites confiance aux identités authentifiées par cet IdP pour avoir accès à votre. Compte AWS En fournissant l'empreinte numérique du certificat de l'autorité de certification, vous approuvez n'importe quel certificat émis par cette autorité de certification avec le même nom de DNS que celui qui est enregistré. Ainsi, vous n'avez plus besoin de mettre à jour les approbations dans chaque compte lorsque vous renouvelez le certificat de signature de l'IdP.

Important

Dans la plupart des cas, le serveur de fédération utilise deux certificats différents.

  • Le premier établit une connexion HTTPS entre AWS et votre IdP. Cela doit être émis par une autorité de certification racine publique bien connue, telle que AWS Certificate Manager. Cela permet au client de vérifier la fiabilité et l'état du certificat.

  • Le second est utilisé pour crypter les jetons et doit être signé par un opérateur privé ou public racine CA.

Vous pouvez créer un fournisseur d'identité IAM OIDC à l' AWS Command Line Interface aide de l'API Tools for Windows PowerShell ou IAM. Lorsque vous utilisez ces méthodes, l'empreinte numérique est facultative. Si vous choisissez de ne pas inclure d'empreinte numérique, IAM récupérera l'empreinte numérique intermédiaire supérieure du certificat du serveur IdP OIDC. Si vous choisissez d'inclure une empreinte digitale, vous devez l'obtenir manuellement et la fournir à. AWS

Lorsque vous créez un fournisseur d'identité OIDC avec la console IAM, celle-ci tente de récupérer l'empreinte numérique pour vous. Nous vous recommandons également d'obtenir manuellement l'empreinte numérique de votre IdP OIDC et de vérifier que la console a récupéré l'empreinte numérique correcte. Pour plus d'informations sur l'obtention des empreintes digitales des certificats, consultez les sections suivantes.

Obtenir l'empreinte numérique du certificat

Vous utilisez un navigateur Web et l'outil de ligne de commande OpenSSL pour obtenir l'empreinte numérique du certificat d'un fournisseur OIDC. Toutefois, il n'est pas nécessaire d'obtenir manuellement l'empreinte numérique du certificat pour créer un fournisseur d'identité IAM OIDC. Vous pouvez utiliser la procédure suivante pour obtenir l'empreinte numérique du certificat de votre fournisseur OIDC.

Note

AWS sécurise les communications avec certains fournisseurs d'identité OIDC (IdPs) via notre bibliothèque d'autorités de certification racine (CA) fiables au lieu d'utiliser une empreinte numérique de certificat pour vérifier le certificat de votre serveur IdP. Dans ce cas, votre empreinte numérique héritée est conservée dans la configuration, mais n'est plus utilisée pour la validation. Ces OIDC IdPs incluent Auth0,, GitHub GitLab, Google et ceux qui utilisent un compartiment Amazon S3 pour héberger un point de terminaison JSON Web Key Set (JWKS).

Pour obtenir l'empreinte d'un IdP OIDC
  1. Avant d'obtenir l'empreinte pour un IdP OIDC, vous devez obtenir l'outil de ligne de commande OpenSSL. Cet outil vous permet de télécharger la chaîne de certificats de l'IdP OIDC et de fournir une empreinte du certificat final dans la chaîne de certificats. Si vous avez besoin d'installer et de configurer OpenSSL, suivez les instructions des sections Installer OpenSSL et Configurer OpenSSL.

  2. Commencez par l'URL de l'IdP OIDC (par exemple, https://server.example.com), puis ajoutez /.well-known/openid-configuration pour former l'URL du document de configuration de l'IdP, comme suit :

    https://server.example.com/.well-known/openid-configuration

    Ouvrez cette URL dans un navigateur web en remplaçant serveur.exemple.com par le nom du serveur du votre IdP.

  3. Dans le document affiché, utilisez la fonction rechercher de votre navigateur web pour localiser le texte "jwks_uri". Immédiatement après le texte "jwks_uri", vous verrez apparaître deux points (:) suivis d'une URL. Copiez le nom de domaine complet de l'URL. N'incluez pas https:// ou le chemin d'accès qui suit le domaine de niveau supérieur.

    { "issuer": "https://accounts.example.com", "authorization_endpoint": "https://accounts.example.com/o/oauth2/v2/auth", "device_authorization_endpoint": "https://oauth2.exampleapis.com/device/code", "token_endpoint": "https://oauth2.exampleapis.com/token", "userinfo_endpoint": "https://openidconnect.exampleapis.com/v1/userinfo", "revocation_endpoint": "https://oauth2.exampleapis.com/revoke", "jwks_uri": "https://www.exampleapis.com/oauth2/v3/certs", ...
  4. Utilisez l'outil de ligne de commande OpenSSL pour exécuter la commande suivante. Remplacez clés.exemple.com par le nom de domaine que vous avez obtenu dans Étape 3.

    openssl s_client -servername keys.example.com -showcerts -connect keys.example.com:443
  5. Dans votre fenêtre de commande, faites défiler jusqu'à afficher un certificat similaire à l'exemple suivant. Si plusieurs certificats sont affichés, recherchez le dernier certificat affiché (à la fin de la sortie de commande). Celui-ci contient le certificat de l'autorité de certification (CA) intermédiaire supérieure dans la chaîne d'autorité de certification.

    -----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE= -----END CERTIFICATE-----

    Copiez le certificat (notamment les lignes -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----) et collez-le dans un fichier texte. Puis enregistrez le fichier sous le nom certificate.crt.

    Note

    La chaîne de certificats du fournisseur d'identité OIDC doit commencer par l'URL du domaine ou de l'émetteur, puis par le certificat intermédiaire et se terminer par le certificat racine. Si l'ordre de la chaîne de certificats est différent ou inclut des certificats dupliqués ou supplémentaires, vous recevez une erreur de non-concordance de signature et STS ne parvient pas à valider le jeton Web JSON (JWT). Corrigez l'ordre des certificats dans la chaîne renvoyée par le serveur pour résoudre l'erreur. Pour plus d'informations sur les normes relatives aux chaînes de certificats, consultez certificate_list dans la RFC 5246 sur le site Web de la série RFC.

  6. Utilisez l'outil de ligne de commande OpenSSL pour exécuter la commande suivante.

    openssl x509 -in certificate.crt -fingerprint -sha1 -noout

    Votre fenêtre de commande affiche l'empreinte du certificat qui semble similaire à l'exemple suivant :

    SHA1 Fingerprint=99:0F:41:93:97:2F:2B:EC:F1:2D:DE:DA:52:37:F9:C9:52:F2:0D:9E

    Supprimez les deux points (:) de cette chaîne pour générer l'empreinte finale, comme ceci :

    990F4193972F2BECF12DDEDA5237F9C952F20D9E
  7. Si vous créez le fournisseur d'identité IAM OIDC à l'aide de l' AWS CLI API Tools for Windows ou IAM PowerShell, fournissez cette empreinte numérique lors de la création du fournisseur.

    Si vous créez le fournisseur d'identité OIDC IAM dans la console IAM, comparez cette empreinte à celle qui s'affiche dans la console sur la page Verify Provider Information (Vérifier les informations de fournisseur) lors de la création d'un fournisseur OIDC.

    Important

    Si l'empreinte que vous avez obtenue ne correspond pas à celle qui s'affiche dans la console, vous ne devez pas créer le fournisseur OIDC dans la console. À la place, patientez un instant et réessayez de créer le fournisseur OIDC, en vous assurant que les empreintes correspondent avant de créer le fournisseur. Si les empreintes ne correspondent toujours pas après une seconde tentative, visitez le Forum IAM pour contacter AWS.

Installer OpenSSL

Si OpenSSL n'est pas déjà installée, suivez les instructions de cette section.

Pour installer OpenSSL sous Linux ou Unix
  1. Accédez à OpenSSL: Source, Tarballs (https://openssl.org/source/).

  2. Téléchargez la source la plus récente et créez le package.

Pour installer OpenSSL sous Windows
  1. Accédez à OpenSSL: Binary Distributions (https://wiki.openssl.org/index.php/Binaries) pour obtenir une liste des sites à partir desquels installer la version Windows.

  2. Suivez les instructions sur le site que vous avez sélectionné pour démarrer l'installation.

  3. Si vous êtes invité à installer le package Microsoft Visual C++ 2008 Redistributable et qu'il n'est pas déjà installé sur votre système, choisissez le lien de téléchargement correspondant à votre environnement. Suivez les instructions fournies par l'Assistant d'installation de Microsoft Visual C++ 2008 Redistributable.

    Note

    Si vous n'êtes pas sûr que Microsoft Visual C++ 2008 Redistributable soit déjà installé sur votre système, vous pouvez essayer d'installer d'abord OpenSSL. Le programme d'installation d'OpenSSL affiche une alerte si Microsoft Visual C++ 2008 Redistributable n'est pas encore installé. Veillez à installer l'architecture (32 ou 64 bits) correspondant à la version d'OpenSSL que vous installez.

  4. Après avoir installé le package Microsoft Visual C++ 2008 Redistributable, sélectionnez la version des fichiers binaires OpenSSL correspondant à votre environnement et enregistrez le fichier localement. Démarrer l'Assistant d'installation d'OpenSSL.

  5. Suivez les instructions décrites dans l'Assistant d'installation d'OpenSSL.

Configurer OpenSSL

Avant d'utiliser les commandes OpenSSL, vous devez configurer le système d'exploitation afin qu'il sache où OpenSSL est installé.

Pour configurer OpenSSL sous Linux ou Unix
  1. Sur la ligne de commande, définissez la variable OpenSSL_HOME à l'emplacement d'installation d'OpenSSL :

    $ export OpenSSL_HOME=path_to_your_OpenSSL_installation
  2. Définissez le chemin d'accès de sorte à inclure l'installation d'OpenSSL :

    $ export PATH=$PATH:$OpenSSL_HOME/bin
    Note

    Les modifications apportées aux variables d'environnement à l'aide de la commande export sont valides uniquement pour la session actuelle. Vous pouvez apporter des modifications persistantes aux variables d'environnement en les définissant dans votre fichier de configuration de shell. Pour plus d'informations, consultez la documentation de votre système d'exploitation.

Pour configurer OpenSSL sous Windows
  1. Ouvrez une fenêtre d'invite de commande.

  2. Définissez la variable OpenSSL_HOME à l'emplacement d'installation d'OpenSSL :

    C:\> set OpenSSL_HOME=path_to_your_OpenSSL_installation
  3. Définissez la variable OpenSSL_CONF à l'emplacement du fichier de configuration dans votre installation d'OpenSSL :

    C:\> set OpenSSL_CONF=path_to_your_OpenSSL_installation\bin\openssl.cfg
  4. Définissez le chemin d'accès de sorte à inclure l'installation d'OpenSSL :

    C:\> set Path=%Path%;%OpenSSL_HOME%\bin
    Note

    Toutes les modifications que vous apportez aux variables d'environnement Windows dans une fenêtre d'invite de commandes ne sont valides que pour la session de ligne de commande en cours. Vous pouvez apporter des modifications persistantes aux variables d'environnement en les définissant comme propriétés système. Les procédures précises dépendent de la version de Windows que vous utilisez. (Par exemple, dans Windows 7, ouvrez le Panneau de configuration, puis Système et sécurité, Système. Ensuite, choisissez Paramètres système avancés, Avancés, Variables d'environnement.) Pour de plus amples informations, veuillez consulter la documentation Windows.