Utilisation de SAML avec l'API de gestion Edge

Edge pour Private Cloud v4.18.01

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 des identifiants d'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 d'authentification de base et un code d'accès contre un jeton d'accès et un jeton d'actualisation OAuth2. L'utilitaire get_token accepte vos identifiants et imprime un jeton d'accès valide. Si un jeton peut être actualisé, il l'actualise et l'imprime. Si le jeton d'actualisation expire, vous serez invité à saisir les identifiants de l'utilisateur.

L'utilitaire get_token stocke les jetons sur le disque, prêts à être utilisés si nécessaire. Il imprime également un jeton d'accès valide dans stdout. Vous pouvez ensuite utiliser Postman ou l'intégrer dans une variable d'environnement pour l'utiliser dans curl.

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

  1. Téléchargez le bundle sso-cli :
    > 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 SSO Edge. Si vous avez configuré TLS sur l'authentification unique Edge, utilisez https et le numéro de port TLS approprié.
  2. Décompressez le fichier ssocli-bundle.zip. lot:
    &gt; décompresser ssocli-bundle.zip
  3. Installez get_token dans /usr/local/bin :
    > ./install Utilisez l'option -b pour spécifier un autre emplacement : > ./install -b path
  4. Définir l'URL de connexion SSO_LOGIN_URL à votre URL de connexion, au format suivant:
    exporter SSO_LOGIN_URL=&quot;http://edge_sso_IP_DNS:9099&quot;

    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 l'authentification unique Edge, utilisez https et le numéro de port TLS approprié.

    Remarque : Si vous n'êtes pas actuellement connecté à votre fournisseur d'identité, vous serez invité à le faire.

    Cette URL renvoie un code secret à usage unique qui reste valide jusqu'à ce que vous l'actualisiez 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 le jeton d'accès OAuth2 :
    > get_token -u emailAddress

    emailAddress correspond à 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:
    &gt; 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 porteur :
    > curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName

    Une fois que vous avez obtenu un nouveau jeton d'accès pour la première fois, vous pouvez l'obtenir et le transmettre à un appel d'API en une seule commande, comme indiqué ci-dessous :
    > header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName

    Avec 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 invite à saisir un nouveau code secret. Vous devez accéder à l'URL indiquée à l'étape 3 ci-dessus 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 la sécurité OAuth2 avec l'API de gestion Apigee Edge contient des instructions sur l'utilisation de l'API de gestion Edge pour obtenir et actualiser des jetons. Vous pouvez également utiliser des appels d'API Edge pour les jetons générés à 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 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'