Utilisation de SAML avec l'API de gestion Edge

Edge pour Private Cloud version 4.17.09

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 rendre 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 reposent 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 L'utilitaire get_token accepte votre 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 de 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 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 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 bon numéro de port TLS.

  2. Décompressez le bundle ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Installer get_token dans /usr/local/bin:
    ./install

    Utilisez l'option -b pour spécifier un autre emplacement:

    ./install -b path
  4. Définissez la variable d'environnement SSO_LOGIN_URL sur votre URL de connexion, au format suivant:
    export 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 Edge SSO, utilisez https et le bon numéro de port TLS.

  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é.

    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 accès à partir d'un jeton d'accès.

  6. Appelez get_token pour obtenir le jeton d'accès OAuth2:
    get_token -u emailAddress

    emailAddress est l'adresse e-mail d'un utilisateur Edge. Vous êtes à saisir le code secret à usage unique obtenu à l'étape 3:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

    Saisissez le code secret. L'utilitaire get_token obtient l'accès OAuth2 le jeton, l'imprime à 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'un get_token sous la forme suivante:

    get_token -u emailAddress -p passcode
  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:

    header=`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 arrivé à expiration, get_token vous invite à saisir 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 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 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.

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'