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:
- 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"
où 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. - Décompressez le bundle
ssocli-bundle.zip
:unzip ssocli-bundle.zip
- Installer
get_token
dans/usr/local/bin
:
./install
Utilisez l'option
-b
pour spécifier un autre emplacement:./install -b path
- 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"
où 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. - 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. - Appelez
get_token
pour obtenir le jeton d'accès OAuth2:
get_token -u emailAddress
où 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
- 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'