Configurer le portail pour utiliser des fournisseurs d'identité externes

Le portail des services pour les développeurs Apigee (ou simplement le portail) agit en tant que client d'Apigee Edge. Cela signifie que le portail ne fonctionne pas comme un système autonome. En réalité, la plupart des informations utilisées par le portail sont stockées sur Edge. Si nécessaire, le portail envoie une requête pour récupérer des informations depuis Edge ou pour envoyer des informations à Edge.

Le portail est toujours associé à une seule organisation Edge. Lorsque vous configurez le portail, vous pouvez spécifier les identifiants d'authentification de base (nom d'utilisateur et mot de passe) d'un compte de l'organisation que le portail utilise pour communiquer avec Edge.

Si vous choisissez d'activer un IDP externe tel que SAML ou LDAP pour l'authentification Edge, vous pouvez configurer le portail pour qu'il utilise cette authentification lors de l'envoi de requêtes à Edge. La configuration du portail pour utiliser un IdP externe crée automatiquement un compte utilisateur de machine dans l'organisation Edge, que le portail utilise ensuite pour envoyer des requêtes à Edge. Pour en savoir plus sur les utilisateurs de machines, consultez Automatiser les tâches pour les IdP externes.

La compatibilité du fournisseur d'identité externe avec le portail nécessite que vous ayez déjà installé et configuré le module Apigee SSO sur le nœud du serveur de gestion Edge. Le processus général d'activation d'un fournisseur d'identité externe pour le portail est le suivant :

  1. Installez le module Apigee SSO, comme décrit dans Installer Apigee SSO pour la haute disponibilité.
  2. Installez le portail et assurez-vous que votre installation fonctionne correctement. Consultez Installer le portail.
  3. Configurez SAML ou LDAP sur le portail, comme décrit dans cette section.
  4. (Facultatif) Désactivez l'authentification de base sur Edge, comme décrit dans Désactiver l'authentification de base sur Edge.

Créer un utilisateur machine pour le portail

Lorsqu'un IdP externe est activé, Edge accepte la génération automatique de jetons OAuth2 via l'utilisation d'utilisateurs de machine. Un utilisateur machine peut obtenir des jetons OAuth2 sans avoir à spécifier de code secret. Cela signifie que vous pouvez automatiser complètement le processus d'obtention et d'actualisation des jetons OAuth2.

Le processus de configuration du fournisseur d'identité pour le portail crée automatiquement un utilisateur machine dans l'organisation associée au portail. Le portail utilise ensuite ce compte utilisateur de machine pour se connecter à Edge. Pour en savoir plus sur les utilisateurs de machines, consultez Automatiser les tâches pour les IdP externes.

À propos de l'authentification pour les comptes de développeur du portail

Lorsque vous configurez le portail pour qu'il utilise un fournisseur d'identité externe, vous l'autorisez à utiliser SAML ou LDAP pour s'authentifier auprès d'Edge afin qu'il puisse envoyer des requêtes à Edge. Toutefois, le portail accepte également un type d'utilisateur appelé développeurs.

Les développeurs constituent la communauté d'utilisateurs qui créent des applications à l'aide de vos API. Les développeurs d'applications utilisent le portail pour en savoir plus sur vos API, enregistrer des applications qui les utilisent, interagir avec la communauté de développeurs et afficher des informations statistiques sur l'utilisation de leurs applications sur un tableau de bord.

Lorsqu'un développeur se connecte au portail, c'est le portail qui est chargé de l'authentifier et d'appliquer les autorisations basées sur les rôles. Le portail continue d'utiliser l'authentification de base avec les développeurs, même après l'activation de l'authentification IDP entre le portail et Edge. Pour en savoir plus, consultez Communication entre le portail et Edge.

Il est également possible de configurer le portail pour qu'il utilise SAML ou LDAP pour authentifier les développeurs. Pour obtenir un exemple d'activation de SAML à l'aide de modules Drupal tiers, consultez la page Intégration de l'authentification unique via SAML avec le portail des développeurs.

Fichier de configuration du fournisseur d'identité pour le portail

Pour configurer un fournisseur d'identité externe pour le portail, vous devez créer un fichier de configuration qui définit les paramètres du portail.

L'exemple suivant montre un fichier de configuration de portail compatible avec les fournisseurs d'identité :

# IP address of Edge Management Server and the node on which the Apigee SSO module is installed.
IP1=22.222.22.222

# URL of Edge management API.
MGMT_URL=http://$IP1:8080/v1

# Organization associated with the portal.
EDGE_ORG=myorg

# Information about the Apigee SSO module (apigee-sso).
# Externally accessible IP or DNS of apigee-sso.
SSO_PUBLIC_URL_HOSTNAME=$IP1
SSO_PUBLIC_URL_PORT=9099
# Default is http. Set to https if you enabled TLS on apigee-sso.
SSO_PUBLIC_URL_SCHEME=http

# SSO admin credentials as set when you installed apigee-sso.
SSO_ADMIN_NAME=ssoadmin
SSO_ADMIN_SECRET=Secret123

# Enables or disables external IDP support.
# Default is "n", which disables external IDP support.
# Change it to "y" to enable external IDs support.
DEVPORTAL_SSO_ENABLED=y

# The name of the OAuth2 client used to connect to apigee-sso.
# The default client name is portalcli.
PORTALCLI_SSO_CLIENT_NAME=portalcli
# OAuth client password using uppercase, lowercase, number, and special characters.
PORTALCLI_SSO_CLIENT_SECRET=Abcdefg@1

# Email address and user info for the machine user created in the Edge org specified
# above by EDGE_ORG.
# This account is used by the portal to make requests to Edge.
# Add this email as an org admin before configuring the portal to use an external IDP.
DEVPORTAL_ADMIN_EMAIL=DevPortal_SAML@google.com
DEVPORTAL_ADMIN_FIRSTNAME=DevPortal
DEVPORTAL_ADMIN_LASTNAME=SAMLAdmin
DEVPORTAL_ADMIN_PWD=Abcdefg@1

# If set, the existing portal OAuth client is deleted and a new one is created.
# The default value is "n".
# Set to "y" when you configure the external IDP and change the value of
# any of the PORTALCLI_* properties.
PORTALCLI_SSO_CLIENT_OVERWRITE=y

Pour activer la compatibilité avec un IdP externe sur le portail :

  1. Dans l'interface utilisateur d'Edge, ajoutez l'utilisateur de machine spécifié par DEVPORTAL_ADMIN_EMAIL à l'organisation associée au portail en tant qu'administrateur de l'organisation.
  2. Exécutez la commande suivante pour configurer le fournisseur d'identité externe sur le portail :
    /opt/apigee/apigee-service/bin/apigee-service apigee-drupal-devportal configure-sso -f configFile

    Où configFile est le fichier de configuration décrit ci-dessus.

  3. Connectez-vous au portail en tant qu'administrateur du portail.
  4. Dans le menu principal de Drupal, sélectionnez Configuration > Dev Portal. L'écran de configuration du portail s'affiche, y compris les paramètres du fournisseur d'identité externe :

    Veuillez noter les points suivants :

    • La case This org is SAML-enabled (Cette organisation est compatible avec SAML) est cochée.
    • Le point de terminaison du module Apigee SSO est renseigné.
    • Les champs Clé API et Secret client du client OAuth du portail sont renseignés.
    • Le message Connexion réussie s'affiche sous le bouton Tester la connexion.
  5. Cliquez sur le bouton Tester la connexion pour tester à nouveau la connexion à tout moment.

Pour modifier ces valeurs ultérieurement, mettez à jour le fichier de configuration et exécutez à nouveau cette procédure.

Désactiver un IdP externe sur le portail

Si vous choisissez de désactiver votre fournisseur d'identité externe pour les communications entre le portail et Edge, le portail ne pourra plus envoyer de requêtes à Edge. Les développeurs peuvent se connecter au portail, mais ne peuvent pas afficher de produits ni créer d'applications.

Pour désactiver l'authentification par IdP externe sur le portail :

  1. Ouvrez le fichier de configuration que vous avez utilisé précédemment pour activer l'IdP externe.
  2. Définissez la valeur de la propriété DEVPORTAL_SSO_ENABLED sur n, comme illustré dans l'exemple suivant :
    DEVPORTAL_SSO_ENABLED=n
  3. Configurez le portail en exécutant la commande suivante :
    /opt/apigee/apigee-service/bin/apigee-service apigee-drupal-devportal configure-sso -f configFile