Configurar el SSO de Apigee para el acceso HTTPS

En Instala y configura SSO de Apigee, se describe cómo instalar y configurar el módulo de SSO de Apigee para usar HTTP en el puerto 9099, como se especifica en la siguiente propiedad del archivo de configuración de Edge:

SSO_TOMCAT_PROFILE=DEFAULT

También puedes establecer SSO_TOMCAT_PROFILE en uno de los siguientes valores para habilitar el acceso HTTPS:

  • SSL_PROXY: configura apigee-sso, el módulo de SSO de Apigee, en modo proxy, lo que significa que instalaste un balanceador de cargas frente a apigee-sso y finalizaste TLS en el balanceador de cargas. Luego, especifica el puerto que se usa en apigee-sso para las solicitudes del balanceador de cargas.
  • SSL_TERMINATION: Se habilitó el acceso TLS a apigee-sso en el puerto que elijas. Para este modo, debes especificar un almacén de claves que contenga un certificado firmado por un CA. No puedes usar un certificado autofirmado.

Puedes habilitar HTTPS en el momento en que instalas y configuras apigee-sso por primera vez, o puedes hacerlo más tarde.

Si habilitas el acceso HTTPS a apigee-sso con cualquiera de los dos modos, se inhabilita el acceso HTTP. Es decir, no puedes acceder a apigee-sso mediante HTTP y HTTPS al mismo tiempo.

Habilitar el modo SSL_PROXY

En el modo SSL_PROXY, tu sistema usa un balanceador de cargas frente al módulo de SSO de Apigee y finaliza TLS en el balanceador de cargas. En la siguiente figura, el balanceador de cargas finaliza TLS en el puerto 443 y, luego, reenvía las solicitudes al módulo SSO de Apigee en el puerto 9099:

En esta configuración, confías en la conexión del balanceador de cargas al módulo de SSO de Apigee, por lo que no es necesario usar TLS para esa conexión. Sin embargo, las entidades externas, como el IdP, ahora deben acceder al módulo de SSO de Apigee en el puerto 443, no en el puerto desprotegido de 9099.

El motivo para configurar el módulo de SSO de Apigee en modo SSL_PROXY es que este módulo genera de forma automática las URLs de redireccionamiento que el IdP usa de manera externa como parte del proceso de autenticación. Por lo tanto, estas URLs de redireccionamiento deben contener el número de puerto externo en el balanceador de cargas, 443 en este ejemplo, y no el puerto interno en el módulo SSO de Apigee, 9099.

A fin de configurar el módulo de SSO de Apigee para el modo SSL_PROXY, haz lo siguiente:

  1. Agrega la siguiente configuración a tu archivo de configuración:
    # Enable SSL_PROXY mode.
    SSO_TOMCAT_PROFILE=SSL_PROXY
    
    # Specify the apigee-sso port, typically between 1025 and 65535.
    # Typically ports 1024 and below require root access by apigee-sso.
    # The default is 9099.
    SSO_TOMCAT_PORT=9099
    
    # Specify the port number on the load balancer for terminating TLS.
    # This port number is necessary for apigee-sso to auto-generate redirect URLs.
    SSO_TOMCAT_PROXY_PORT=443
    SSO_PUBLIC_URL_PORT=443
    
    # Set public access scheme of apigee-sso to https.
    SSO_PUBLIC_URL_SCHEME=https
  2. Configura el módulo de SSO de Apigee:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Actualiza la configuración de tu IdP para realizar una solicitud HTTPS en el puerto 443 del balanceador de cargas y acceder al SSO de Apigee. Para obtener más información, consulta uno de los siguientes vínculos:
  4. Actualiza la configuración de la IU de Edge para HTTPS con las siguientes propiedades en el archivo de configuración:
    SSO_PUBLIC_URL_PORT=443
    SSO_PUBLIC_URL_SCHEME=https

    Luego, actualiza la IU de Edge:

    /opt/apigee/apigee-service/bin/apigee-service edge-management-ui configure-sso -f configFile

    Utiliza el componente edge-ui para la IU clásica.

  5. Si instalaste el portal de servicios para desarrolladores de Apigee (o simplemente el portal), actualízalo a fin de que use HTTPS para acceder al SSO de Apigee. Si quieres obtener más información, consulta Configura el portal para usar IdP externos.

Consulta Habilita un IdP externo en la IU de Edge para obtener más información.

Habilitar el modo SSL_TERMINATION

Para el modo SSL_TERMINATION, debes hacer lo siguiente:

  • Genera un certificado TLS y una clave, y almacénalos en un archivo de almacén de claves. No puedes usar un certificado autofirmado. Debes generar un certificado a partir de una CA.
  • Actualiza los parámetros de configuración de apigee-sso.

Para crear un archivo de almacén de claves a partir del certificado y la clave, haz lo siguiente:

  1. Crea un directorio para el archivo JKS:
    sudo mkdir -p /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  2. Cambia al directorio nuevo:
    cd /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  3. Crea un archivo JKS que contenga el certificado y la clave. Para este modo, debes especificar un almacén de claves que contenga un certificado firmado por una CA. No puedes usar un certificado autofirmado. Si deseas ver un ejemplo de cómo crear un archivo JKS, consulta Configura TLS/SSL para Edge local.
  4. Haz que el archivo JKS sea propiedad del usuario de “apigee”:
    sudo chown -R apigee:apigee /opt/apigee/customer/application/apigee-sso/tomcat-ssl

Para configurar el módulo SSO de Apigee, haz lo siguiente:

  1. Agrega la siguiente configuración a tu archivo de configuración:
    # Enable SSL_TERMINATION mode.
    SSO_TOMCAT_PROFILE=SSL_TERMINATION
    
    # Specify the path to the keystore file.
    SSO_TOMCAT_KEYSTORE_FILEPATH=/opt/apigee/customer/application/apigee-sso/tomcat-ssl/keystore.jks
    
    SSO_TOMCAT_KEYSTORE_ALIAS=sso
    
    # The password specified when you created the keystore.
    SSO_TOMCAT_KEYSTORE_PASSWORD=keystorePassword
    
    # Specify the HTTPS port number between 1025 and 65535.
    # Typically ports 1024 and below require root access by apigee-sso.
    # The default is 9099.
    SSO_TOMCAT_PORT=9443
    SSO_PUBLIC_URL_PORT=9443
    
    # Set public access scheme of apigee-sso to https.
    SSO_PUBLIC_URL_SCHEME=https
  2. Configura el módulo de SSO de Apigee:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Actualiza la configuración de tu IdP para realizar una solicitud HTTPS en el puerto 9443 del balanceador de cargas y acceder al SSO de Apigee. Asegúrate de que ningún otro servicio esté usando este puerto.

    Para obtener más información, consulta lo siguiente:

  4. Actualiza la configuración de la IU de Edge para HTTPS mediante la configuración de las siguientes propiedades:
    SSO_PUBLIC_URL_PORT=9443
    SSO_PUBLIC_URL_SCHEME=https
  5. Si instalaste el portal de servicios para desarrolladores, actualízalo a fin de que use HTTPS para acceder al SSO de Apigee. Si quieres obtener más información, consulta Configura el portal para usar IdP externos.

Establece SSO_TOMCAT_PROXY_PORT cuando se usa el modo SSL_TERMINATION.

Es posible que tengas un balanceador de cargas frente al módulo de SSO de Apigee que finalice TLS en el balanceador de cargas, pero también habilite TLS entre el balanceador de cargas y el SSO de Apigee. En la figura anterior del modo SSL_PROXY, esto significa que la conexión del balanceador de cargas al SSO de Apigee usa TLS.

En esta situación, configurarás TLS en el SSO de Apigee como lo hiciste antes para el modo SSL_TERMINATION. Sin embargo, si el balanceador de cargas usa un número de puerto TLS diferente al que usa el SSO de Apigee para TLS, también debes especificar la propiedad SSO_TOMCAT_PROXY_PORT en el archivo de configuración. Por ejemplo:

  • El balanceador de cargas finaliza TLS en el puerto 443
  • El SSO de Apigee finaliza TLS en el puerto 9443

Asegúrate de incluir el siguiente parámetro de configuración en el archivo de configuración:

# Specify the port number on the load balancer for terminating TLS.
# This port number is necessary for apigee-sso to generate redirect URLs.
SSO_TOMCAT_PROXY_PORT=443
SSO_PUBLIC_URL_PORT=443

Configura el IdP y la IU de Edge para realizar solicitudes HTTPS en el puerto 443.