Obtención de la huella digital de un proveedor de identidades OpenID Connect - AWS Identity and Access Management

Obtención de la huella digital de un proveedor de identidades OpenID Connect

Cuando crea un proveedor de identidades OpenID Connect (OIDC) en la consola de IAM, debe proporcionar una huella digital. IAM requiere la huella digital de la entidad de certificación (CA) superior intermedia que firmó el certificado utilizado por el proveedor de identidades (IdP) externo. La huella digital es una firma para el certificado de CA que se utilizó para emitir el certificado para el proveedor de identidad compatible con OIDC. Cuando crea un proveedor de identidad OIDC en IAM, está dando acceso a su Cuenta de AWS a las identidades autenticadas por ese IdP. Al proporcionar la huella digital del certificado de CA, confía en cualquier certificado emitido por esa CA con el mismo nombre DNS que el registrado. Esto elimina la necesidad de actualizar las relaciones de confianza de cada cuenta al renovar el certificado de firma del proveedor de identidad.

importante

En la mayoría de los casos, el servidor de federación utiliza dos certificados diferentes:

  • El primero establece una conexión HTTPS entre AWS y el proveedor de identidades. Este lo debe emitir una CA raíz pública conocida, como AWS Certificate Manager. Esto permite al cliente comprobar la fiabilidad y el estado del certificado.

  • El segundo se emplea para cifrar tokens y debe estar firmado por una CA raíz privada o pública.

Puede crear y administrar un proveedor de identidad OIDC de IAM con AWS Command Line Interface, Tools for Windows PowerShell o la API de IAM. Cuando utilice estos métodos, la huella digital será opcional. Si decide no incluir una huella digital, IAM recuperará la huella digital de la CA intermedia superior del certificado del servidor IdP del OIDC. Si opta por incluir una huella digital, deberá obtenerla manualmente y proporcionarla a AWS.

Cuando crea un proveedor de identidades OIDC con la consola de IAM, esta intenta recuperar la huella digital en su lugar. Le recomendamos que obtenga también manualmente la huella digital del IdP OIDC y que verifique que la consola obtuvo la huella digital correcta. Para obtener más información sobre cómo obtener huellas digitales de certificados, consulte las siguientes secciones.

Obtener huellas digitales de certificados

Utilice un navegador Web y la herramienta de línea de comandos OpenSSL para obtener la huella digital de un proveedor OIDC. Sin embargo, no es necesario que obtenga manualmente la huella digital del certificado para crear un proveedor de identidades OIDC de IAM. Puede usar el siguiente procedimiento para obtener la huella digital del certificado de su proveedor OIDC.

nota

AWS garantiza la comunicación con algunos proveedores de identidad (IdP) de OIDC a través de nuestra biblioteca de entidades de certificación raíz de confianza (CA) en lugar de utilizar una huella digital de certificado para verificar el certificado del servidor IdP. En estos casos, la huella digital heredada permanece en su configuración, pero ya no se utiliza para la validación. Estos proveedores de identidades de OIDC incluyen a Auth0, GitHub, GitLab, Google y aquellos que utilizan un bucket de Amazon S3 para alojar un punto de conexión JSON Web Key Set (JWKS).

Para obtener la huella digital de un proveedor de identidades OIDC
  1. Para poder obtener la huella digital de un proveedor de identidad OIDC, debe obtener primero la herramienta de línea de comandos OpenSSL. Esta herramienta le permite descargar la cadena de certificados del proveedor de identidades OIDC IdP y generar una huella digital del certificado final en la cadena de certificados. Si necesita instalar y configurar OpenSSL, siga las instrucciones que figuran en Instalación de OpenSSL y Configuración de OpenSSL.

  2. Comience con la URL del IdP OIDC (por ejemplo, https://server.example.com) y, a continuación, agregue /.well-known/openid-configuration para formar la dirección URL del documento de configuración del IdP, de este modo:

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

    Abra esta URL en un navegador web y sustituya servidor.ejemplo.com por el nombre del servidor del proveedor de identidades.

  3. En el documento que se muestra, utilice la característica de su navegador web Buscar para localizar el texto de "jwks_uri". Justo después del texto "jwks_uri", verá dos puntos (:) seguidos de una URL. Copie el nombre completo del dominio de la URL. No incluya https:// ni ninguna ruta que vaya después del dominio de nivel superior.

    { "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. Utilice la herramienta de línea de comandos OpenSSL para ejecutar el siguiente comando. Sustituya claves.ejemplo.com por el nombre de dominio que ha obtenido en Paso 3.

    openssl s_client -servername keys.example.com -showcerts -connect keys.example.com:443
  5. En la ventana de comandos, desplácese hacia arriba hasta que vea un certificado similar al del ejemplo siguiente. Si ve más de un certificado, busque el último certificado que se muestre (en la parte inferior de la salida del comando). Este contendrá el certificado de la CA superior intermedia en la cadena de autoridad de certificación.

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

    Copie todo el certificado (incluidas las líneas -----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----) y péguelo en un archivo de texto. A continuación, guarde el archivo con el nombre de archivo certificate.crt.

    nota

    La cadena de certificados del proveedor de identidades OIDC debe empezar con el dominio o la URL del emisor, luego con el certificado intermedio y terminar con el certificado raíz. Si el orden de la cadena de certificados es diferente o incluye certificados duplicados o adicionales, se produce un error de discordancia de firmas y STS no podrá validar el token web JSON (JWT). Corrija el orden de los certificados de la cadena devuelta por el servidor para resolver el error. Para obtener más información sobre los estándares de la cadena de certificados, consulte el documento certificate_list en el RFC 5246 en el sitio web de la serie RFC.

  6. Utilice la herramienta de línea de comandos OpenSSL para ejecutar el siguiente comando.

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

    La ventana de comandos muestra la huella digital del certificado, que tiene un aspecto similar al del siguiente ejemplo:

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

    Elimine todos los dos puntos (:) de esta cadena para generar la huella digital final, tal y como se muestra a continuación:

    990F4193972F2BECF12DDEDA5237F9C952F20D9E
  7. Si desea crear el proveedor de identidad de IAM OIDC con la AWS CLI, las Tools for Windows PowerShell o la API de IAM, proporcione esta huella digital al crear el proveedor.

    Si desea crear el proveedor de identidad IAM OIDC en la consola de IAM, compare esta huella digital con la que se muestra en la página Verificar información de proveedor de la consola al crear un proveedor OIDC.

    importante

    Si la huella digital que ha obtenido no coincide con la que se muestra en la consola, no debe crear el proveedor OIDC en la consola. Espere un rato, vuelva a intentar crear el proveedor OIDC y asegúrese de que las huellas digitales coincidan antes de crear el proveedor. Si siguen sin coincidir después de intentarlo por segunda vez, utilice el foro de IAM para ponerse en contacto con AWS.

Instalación de OpenSSL

Si aún no dispone de OpenSSL instalado, siga las instrucciones indicadas en esta sección.

Para instalar OpenSSL en Linux o Unix
  1. Vaya a OpenSSL: Fuente, Tarballs (https://openssl.org/source/).

  2. Descargue la fuente más reciente y cree el paquete.

Para instalar OpenSSL en Windows
  1. Vaya a OpenSSL: distribuciones binarias (https://wiki.openssl.org/index.php/Binaries) para obtener una lista de sitios desde los que puede instalar la versión de Windows.

  2. Siga las instrucciones del sitio seleccionado para iniciar la instalación.

  3. Si se le solicita que instale Microsoft Visual C++ 2008 Redistributables y aún no está instalado en su sistema, elija el enlace de descarga adecuado para su entorno. Siga las instrucciones proporcionadas por el Asistente para la instalación de Microsoft Visual C++ 2008 Redistributable.

    nota

    Si no está seguro de si Microsoft Visual C++ 2008 Redistributables ya está instalado en el sistema, puede intentar instalar OpenSSL primero. El instalador de OpenSSL muestra una alerta si Microsoft Visual C++ 2008 Redistributables aún no está instalado. Asegúrese de instalar la arquitectura (32 bits o 64 bits) que coincide con la versión de OpenSSL que instale.

  4. Después de instalar Microsoft Visual C++ 2008 Redistributables, seleccione la versión adecuada de los archivos binarios OpenSSL para su entorno y guarde el archivo localmente. Inicie el Asistente de instalación de OpenSSL.

  5. Siga las instrucciones descritas en el Asistente de instalación de OpenSSL.

Configuración de OpenSSL

Antes de utilizar los comandos de OpenSSL, debe configurar el sistema operativo para que tenga información sobre la ubicación donde está instalado OpenSSL.

Para configurar OpenSSL en Linux o Unix
  1. En la línea de comandos, establezca la variable OpenSSL_HOME a la ubicación de la instalación de OpenSSL:

    $ export OpenSSL_HOME=path_to_your_OpenSSL_installation
  2. Establezca la ruta para incluir la instalación de OpenSSL:

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

    Los cambios que haga en las variables de entorno mediante el comando export solo son válidas para la sesión actual. Puede realizar cambios persistentes en las variables de entorno configurándolas en el archivo de configuración de su shell. Para obtener más información, consulte la documentación del sistema operativo.

Para configurar OpenSSL en Windows
  1. Abra una ventana del símbolo del sistema.

  2. Establezca la variable OpenSSL_HOME a la ubicación de la instalación de OpenSSL:

    C:\> set OpenSSL_HOME=path_to_your_OpenSSL_installation
  3. Establezca la variable OpenSSL_CONF a la ubicación del archivo de configuración en su instalación OpenSSL:

    C:\> set OpenSSL_CONF=path_to_your_OpenSSL_installation\bin\openssl.cfg
  4. Establezca la ruta para incluir la instalación de OpenSSL:

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

    Cualquier cambio que realice en las variables de entorno de Windows en una ventana del Símbolo del sistema es válido solo para la sesión actual de la línea de comandos. Puede realizar cambios persistentes en las variables de entorno configurándolas como propiedades del sistema. Los procedimientos exactos dependen de la versión de Windows que esté utilizando. (Por ejemplo, en Windows 7, abra Panel de control, Seguridad y sistema, Sistema. A continuación, elija Configuración avanzada del sistema, pestaña Avanzado, Variables de entorno.) Para obtener más información, consulte la documentación de Windows.