Utiliser un fournisseur d'identité externe avec l'API de gestion Edge

L'authentification de base est un moyen de s'authentifier lors des appels vers l'API de gestion Edge. Par exemple, vous pouvez envoyer la requête curl suivante à l'API de gestion Edge pour accéder des informations sur votre organisation:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Dans cet exemple, vous utilisez l'option -u curl pour transmettre l'authentification de base identifiants de connexion. Vous pouvez également transmettre un jeton OAuth2 dans l'en-tête Bearer pour Appels d'API de gestion Edge, comme le montre l'exemple suivant:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Après avoir activé un IdP externe pour l'authentification, vous pouvez éventuellement désactiver l'option "Basic" l'authentification unique. Si vous désactivez l'édition Basic l'authentification, tous les scripts (tels que Maven, shell et apigeetool) qui des appels d'API de gestion Edge compatibles avec l'authentification de base ne fonctionnent plus. Vous devez mettre à jour les appels d'API et les scripts qui utilisent l'authentification de base pour transmettre les jetons d'accès OAuth2 En-tête Bearer.

Obtenir et actualiser des jetons avec get_token

L'utilitaire get_token échange vos identifiants d'authentification Basic (et, dans certains cas, un code secret) pour un jeton d'accès et d'actualisation OAuth2. L'utilitaire get_token accepte votre d'authentification et renvoie un jeton d'accès valide. Si un jeton peut être actualisé, l'utilitaire actualise et la renvoie. Si le jeton d'actualisation expire, vous serez invité à saisir les identifiants de l'utilisateur.

L'utilitaire get_token stocke les jetons sur un disque, prêts à être utilisés si nécessaire. Il imprime également un jeton d'accès valide sur stdout. Vous pouvez alors utiliser une extension de navigateur telle que Postman ou intégrez-le dans une variable d'environnement à utiliser dans curl.

Pour obtenir un jeton d'accès OAuth2 afin d'effectuer des appels d'API de gestion Edge:

  1. Téléchargez le package sso-cli:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    EDGE_SSO_IP_DNS correspond à l'adresse IP ou au nom DNS de la machine hébergeant le le module SSO d'Apigee. Si vous avez configuré TLS sur l'authentification unique Apigee, utilisez https et la bonne Numéro de port TLS.

  2. Décompressez le bundle ssocli-bundle.zip, comme indiqué dans l'exemple suivant:
    unzip ssocli-bundle.zip
  3. Installez get_token dans /usr/local/bin, comme illustré dans l'exemple suivant:
    ./install -b PATH

    L'option -b spécifie un emplacement différent.

  4. Définissez la variable d'environnement SSO_LOGIN_URL sur votre URL de connexion, comme suit : formulaire:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    EDGE_SSO_IP_DNS correspond à l'adresse IP de la machine hébergeant l'authentification unique Apigee. de ce module. Si vous avez configuré TLS sur l'authentification unique Apigee, utilisez https et le port TLS approprié numéro.

  5. (SAML uniquement) Dans un navigateur, accédez à l'URL suivante pour obtenir un identifiant unique code secret:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Si vous avez configuré TLS sur l'authentification unique Apigee, utilisez https et le port TLS approprié numéro.

    Cette requête renvoie un code secret à usage unique qui reste valide jusqu'à ce que vous actualisiez cette URL pour obtenez-en un nouveau ou utilisez-le avec get_token pour générer un un jeton d'accès.

    Notez que vous ne pouvez utiliser un code secret que lors de l'authentification avec un IdP SAML. Vous ne pouvez pas utiliser un code secret pour s’authentifier auprès d’un IdP LDAP.

  6. Appelez get_token pour obtenir le jeton d'accès OAuth2, comme illustré dans l'exemple suivant:
    get_token -u EMAIL_ADDRESS

    EMAIL_ADDRESS est l'adresse e-mail d'un utilisateur Edge.

    (SAML uniquement) Saisissez le code secret sur la ligne de commande en plus de l'e-mail , comme le montre l'exemple suivant:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    L'utilitaire get_token obtient le jeton d'accès OAuth2, puis l'imprime et l'écrit, ainsi que le jeton d'actualisation, dans ~/.sso-cli.

  7. Transmettez le jeton d'accès à un appel d'API de gestion Edge en tant qu'en-tête Bearer, comme le montre l'exemple suivant:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. Après avoir obtenu un nouveau jeton d'accès pour la première fois, vous pouvez obtenir le jeton d'accès et transmettez-le à un appel d'API en une seule commande, comme le montre l'exemple suivant:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    Dans cette forme de commande, si le jeton d'accès a expiré, il est automatiquement sont actualisés jusqu'à l'expiration du jeton d'actualisation.

(SAML uniquement) Une fois le jeton d'actualisation arrivé à expiration, get_token vous invite à saisir un nouveau code secret. Toi devez accéder à l'URL indiquée ci-dessus à l'étape 3 et générer un nouveau code secret avant de pouvoir générer un nouveau jeton d'accès OAuth.

Utiliser l'API de gestion pour obtenir et actualiser jetons

Utiliser OAuth2 à l'aide de l'API de gestion Apigee Edge montre comment utiliser API de gestion Edge pour obtenir et actualiser des jetons Vous pouvez également utiliser les appels d'API Edge pour obtenir des jetons générées à partir d'assertions SAML.

La seule différence entre les appels d'API Utiliser OAuth2 avec l'API de gestion Apigee Edge est que l'URL de l'appel doit référencer votre nom de la zone. De plus, pour générer le jeton d'accès initial avec un IdP SAML, vous devez inclure le code secret, comme indiqué à l'étape 3 de la procédure ci-dessus.

Pour l'autorisation, transmettez des identifiants client OAuth2 réservés dans Authorization en-tête. L'appel imprime les jetons d'accès et d'actualisation à l'écran.

Obtenir un jeton d'accès

(LDAP) Utilisez l'appel d'API suivant pour générer l'accès initial et l'actualisation jetons:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) Utilisez l'appel d'API suivant pour générer l'accès initial et actualiser jetons:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

Notez que l'authentification avec un IdP SAML nécessite un code secret temporaire, alors qu'un IdP LDAP ne fonctionne pas.

Actualiser un jeton d'accès

Pour actualiser ultérieurement le jeton d'accès, utilisez l'appel suivant, qui inclut le jeton d'actualisation:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'