Configure apigee-sso para el acceso HTTPS

Edge para la nube privada v4.19.01

En Instala y configura el SSO de Edge, se describe cómo instalar y configurar el módulo de SSO de Edge 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 perimetral, 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 una AC. 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, el sistema usa un balanceador de cargas frente al módulo de SSO de Edge 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 de SSO de Edge en el puerto 9099:

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

El motivo para configurar el módulo de SSO de Edge en el 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 de SSO de Edge, 9099.

A fin de configurar el módulo de SSO perimetral 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 perimetral:
    /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 perimetral. Consulta Configurar tu IdP de SAML para obtener más información.
  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-ui configure-sso -f configFile

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

  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 Edge. Para obtener más información, consulta Configura el portal para que use SAML a fin de comunicarse con Edge

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 de SSO de Edge, sigue estos pasos:

  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 perimetral:
    /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 perimetral. Asegúrate de que ningún otro servicio esté usando este puerto. Para obtener más información, consulte el artículo Cómo configurar su IdP de SAML.
  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

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

  5. Si instalaste el portal de servicios para desarrolladores, actualízalo a fin de que use HTTPS para acceder al SSO perimetral. Para obtener más información, consulta Configura el portal de servicios para desarrolladores de modo que use SAML a fin de comunicarse con Edge.

Configura 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 Edge que finaliza TLS en el balanceador de cargas, pero también habilita TLS entre el balanceador de cargas y el SSO de Edge. En la figura anterior del modo SSL_PROXY, esto significa que la conexión del balanceador de cargas al SSO Edge usa TLS.

En esta situación, configurarás TLS en el SSO de Edge 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 Edge 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 perimetral 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.