Utiliser SAML 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. Pour Par exemple, vous pouvez envoyer la demande cURL suivante à l'API de gestion Edge pour accéder aux informations concernant votre organisation:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

Dans cet exemple, vous utilisez l'option cURL -u pour transmettre les identifiants de l'authentification de base. Vous pouvez également peut transmettre un jeton OAuth2 dans l'en-tête Bearer pour que l'API de gestion Edge appels. Exemple :

curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName

Après avoir activé SAML, vous pouvez éventuellement désactiver l'authentification de base. si vous désactivez l'authentification de base, scripts (scripts Maven, scripts shell, apigeetool, etc.) qui s'appuient sur Edge les appels d'API de gestion compatibles avec l'authentification de base ne fonctionnent plus. Vous devez mettre à jour tous les appels d'API qui utilisent l'authentification de base pour transmettre les jetons d'accès OAuth2 dans l'en-tête du support.

Utiliser get_token pour obtenir et actualiser des jetons

L'utilitaire get_token échange vos identifiants de base d'authentification et un code secret pour un jeton d'accès et d'actualisation OAuth2. La get_token accepte vos les identifiants et imprime un jeton d'accès valide. Si un jeton peut être actualisé, il l'actualise l'imprimer. Si le jeton d'actualisation expire, vous serez invité à saisir les identifiants de l'utilisateur.

Les magasins d'utilitaires get_token les jetons sur le disque, prêts à être utilisés si nécessaire. Elle imprime également un jeton d'accès valide sur stdout. Vous pouvez alors utiliser Postman ou l'intégrer dans une variable d'environnement à utiliser dans curl.

La procédure suivante explique comment utiliser get_token pour obtenir un jeton d'accès OAuth2 pour effectuer des appels d'API de gestion Edge:

  1. Téléchargez la sso-cli. lot:
    curl http://edge_sso_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    edge_sso_IP_DNS est l'adresse IP du nom DNS de la machine. hébergeant le module Edge SSO. Si vous avez configuré TLS sur Edge SSO, utilisez https et le numéro de port TLS correct.

  2. Décompressez le bundle ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Installer get_token dans /usr/local/bin:
    > ./install Utilisez le l'option -b pour spécifier une emplacement différent: > ./install -b chemin d'accès
  4. Définir l'URL de connexion SSO_LOGIN_URL à votre URL de connexion, au format suivant:
    exporter SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    edge_sso_IP_DNS est l'adresse IP du nom DNS de la machine hébergeant le module Edge SSO. Si vous avez configuré TLS sur l'authentification unique Edge, utilisez https et le numéro de port TLS approprié.
  5. Dans un navigateur, accédez à l'URL suivante pour obtenir un code secret à usage unique:
    http://edge_sso_IP_DNS:9099/passcode

    Si vous avez configuré TLS sur Edge SSO, utilisez https et le numéro de port TLS approprié.

    Remarque: Si vous n'êtes pas connecté par votre fournisseur d'identité, vous devrez être invité à se connecter.

    Cette URL renvoie un code secret à usage unique qui reste valide jusqu'à ce que vous l'actualisez pour obtenir un un nouveau code secret, ou vous utilisez le code secret avec get_token pour générer un jeton d'accès.
  6. Appelez get_token pour obtenir Jeton d'accès OAuth2:
    > get_token -u emailAddress

    emailAddress est l'adresse e-mail d'un utilisateur Edge. Vous êtes invité à saisir le code secret à usage unique obtenu à l'étape 3:
    Code à usage unique ( vous pouvez en obtenir un à https://edge_sso_IP.com/passcode )
    Saisissez le code secret si SAML est activé ou appuyez sur ENTRÉE:


    Saisissez le code secret. L'utilitaire get_token obtient l'accès OAuth2 , l'affiche à l'écran et l'écrit, ainsi que le jeton d'actualisation, dans ~/.sso-cli.

    Vous pouvez saisir le code secret sur la ligne de commande à l'aide d'une commande get_token au format:
    > get_token -u emailAddress -p code secret
  7. Transmettez le jeton d'accès à un appel d'API de gestion Edge en tant qu'en-tête de support:
    > curl -H "Authorization: Bearer" access_token" https://ms_IP:8080/v1/organizations/orgName

    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 indiqué ci-dessous:
    > en-tête=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName

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

Une fois le jeton d'actualisation expiré, get_token vous demande un nouveau code secret. Toi vous 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 contient des instructions permettant d'utiliser API de gestion Edge pour obtenir et actualiser des jetons Vous pouvez également utiliser les appels d'API Edge pour les jetons générées à partir d'assertions SAML.

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

Par exemple, utilisez l'appel d'API suivant pour générer les jetons d'accès et d'actualisation initiaux:

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'  

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

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=refreshToken'