Configurer l'authentification unique Apigee pour un accès HTTPS

La page Installer et configurer l'authentification unique Apigee explique comment installer et configurer le module d'authentification unique Apigee pour utiliser HTTP sur le port 9099, comme spécifié par la propriété suivante dans le fichier de configuration Edge :

SSO_TOMCAT_PROFILE=DEFAULT

Vous pouvez également définir SSO_TOMCAT_PROFILE sur l'une des valeurs suivantes pour activer l'accès HTTPS :

  • SSL_PROXY: : configure apigee-sso, le module d'authentification unique Apigee, en mode proxy, ce qui signifie que vous avez installé un équilibreur de charge devant apigee-sso et que vous avez arrêté TLS sur l'équilibreur de charge. Vous spécifiez ensuite le port utilisé sur apigee-sso pour les requêtes provenant de l'équilibreur de charge.
  • SSL_TERMINATION: : accès TLS activé à apigee-sso sur le port de votre choix. Vous devez spécifier un keystore pour ce mode contenant un certificat signé par une autorité de certification. Vous ne pouvez pas utiliser de certificat autosigné.

Vous pouvez choisir d'activer HTTPS lors de l'installation et de la configuration initiales de apigee-sso, ou l'activer ultérieurement.

L'activation de l'accès HTTPS à apigee-sso à l'aide de l'un ou l'autre mode désactive l'accès HTTP. Autrement dit, vous ne pouvez pas accéder à apigee-sso en utilisant à la fois HTTP et HTTPS.

Activer le mode SSL_PROXY

En mode SSL_PROXY, votre système utilise un équilibreur de charge devant le module d'authentification unique Apigee et met fin au protocole TLS sur l'équilibreur de charge. Dans la figure suivante, l'équilibreur de charge met fin au protocole TLS sur le port 443, puis transfère les requêtes au module Apigee SSO sur le port 9099 :

Dans cette configuration, vous faites confiance à la connexion entre l'équilibreur de charge et le module Apigee SSO. Il n'est donc pas nécessaire d'utiliser TLS pour cette connexion. Toutefois, les entités externes, telles que le fournisseur d'identité, doivent désormais accéder au module Apigee SSO sur le port 443, et non sur le port 9099 non protégé.

La raison pour laquelle vous devez configurer le module d'authentification unique Apigee en mode SSL_PROXY est que le module d'authentification unique Apigee génère automatiquement des URL de redirection utilisées en externe par le fournisseur d'identité dans le cadre du processus d'authentification. Par conséquent, ces URL de redirection doivent contenir le numéro de port externe de l'équilibreur de charge (443 dans cet exemple), et non le port interne du module Apigee SSO (9099).

Pour configurer le module Apigee SSO pour le mode SSL_PROXY :

  1. Ajoutez les paramètres suivants à votre fichier de configuration :
    # 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. Configurez le module Apigee SSO :
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Mettez à jour la configuration de votre fournisseur d'identité pour qu'il envoie une requête HTTPS sur le port 443 de l'équilibreur de charge afin d'accéder à Apigee SSO. Pour en savoir plus, consultez l'une des ressources suivantes :
  4. Mettez à jour votre configuration de l'UI Edge pour HTTPS en définissant les propriétés suivantes dans le fichier de configuration :
    SSO_PUBLIC_URL_PORT=443
    SSO_PUBLIC_URL_SCHEME=https

    Mettez ensuite à jour l'interface utilisateur Edge :

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

    Utilisez le composant edge-ui pour l'UI classique.

  5. Si vous avez installé le portail des services de développement Apigee (ou simplement le portail), mettez-le à jour pour qu'il utilise HTTPS pour accéder à Apigee SSO. Pour en savoir plus, consultez Configurer le portail pour qu'il utilise des IdP externes.

Pour en savoir plus, consultez Activer un fournisseur d'identité externe dans l'interface utilisateur Edge.

Activer le mode SSL_TERMINATION

Pour le mode SSL_TERMINATION, vous devez :

  • Générez un certificat et une clé TLS, puis stockez-les dans un fichier keystore. Vous ne pouvez pas utiliser de certificat autosigné. Vous devez générer un certificat à partir d'une autorité de certification.
  • Mettre à jour les paramètres de configuration pour apigee-sso.

Pour créer un fichier keystore à partir de votre certificat et de votre clé :

  1. Créez un répertoire pour le fichier JKS :
    sudo mkdir -p /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  2. Accédez au nouveau répertoire :
    cd /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  3. Créez un fichier JKS contenant le certificat et la clé. Pour ce mode, vous devez spécifier un keystore contenant un certificat signé par une autorité de certification. Vous ne pouvez pas utiliser de certificat autosigné. Pour obtenir un exemple de création d'un fichier JKS, consultez Configurer TLS/SSL pour Edge sur site.
  4. Faites en sorte que le fichier JKS appartienne à l'utilisateur "apigee" :
    sudo chown -R apigee:apigee /opt/apigee/customer/application/apigee-sso/tomcat-ssl

Pour configurer le module Apigee SSO :

  1. Ajoutez les paramètres suivants à votre fichier de configuration :
    # 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. Configurez le module Apigee SSO :
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Mettez à jour la configuration de votre fournisseur d'identité pour qu'il envoie une requête HTTPS sur le port 9443 de l'équilibreur de charge afin d'accéder à l'authentification unique Apigee. Assurez-vous qu'aucun autre service n'utilise ce port.

    Pour en savoir plus, consultez les ressources suivantes :

  4. Mettez à jour votre configuration de l'UI Edge pour HTTPS en définissant les propriétés suivantes :
    SSO_PUBLIC_URL_PORT=9443
    SSO_PUBLIC_URL_SCHEME=https
  5. Si vous avez installé le portail des services des développeurs, mettez-le à jour pour qu'il utilise HTTPS pour accéder à Apigee SSO. Pour en savoir plus, consultez Configurer le portail pour utiliser des IdP externes.

Définir SSO_TOMCAT_PROXY_PORT en mode SSL_TERMINATION

Vous pouvez avoir un équilibreur de charge devant le module Apigee SSO qui met fin au protocole TLS sur l'équilibreur de charge, mais qui active également le protocole TLS entre l'équilibreur de charge et Apigee SSO. Dans la figure ci-dessus pour le mode SSL_PROXY, cela signifie que la connexion entre l'équilibreur de charge et l'authentification unique Apigee utilise TLS.

Dans ce scénario, vous configurez TLS sur l'authentification unique Apigee, comme vous l'avez fait ci-dessus pour le mode SSL_TERMINATION. Toutefois, si l'équilibreur de charge utilise un numéro de port TLS différent de celui utilisé par Apigee SSO pour TLS, vous devez également spécifier la propriété SSO_TOMCAT_PROXY_PORT dans le fichier de configuration. Exemple :

  • L'équilibreur de charge met fin au protocole TLS sur le port 443.
  • Apigee SSO met fin au protocole TLS sur le port 9443

Veillez à inclure le paramètre suivant dans le fichier de configuration :

# 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

Configurez l'IDP et l'UI Edge pour qu'ils envoient des requêtes HTTPS sur le port 443.