L'authentification de base est l'un des moyens d'authentification lorsque vous effectuez des appels à 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 effectuer des appels d'API de gestion Edge, comme illustré dans 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 de base (et dans certains cas un code secret) contre 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 l'actualise et le 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:
- 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"
Où EDGE_SSO_IP_DNS correspond à l'adresse IP ou au nom DNS de la machine hébergeant le module SSO Apigee. Si vous avez configuré TLS sur l'authentification unique Apigee, utilisez
https
et la bonne Numéro de port TLS. - Décompressez le bundle
ssocli-bundle.zip
, comme indiqué dans l'exemple suivant:unzip ssocli-bundle.zip
- Installez
get_token
dans/usr/local/bin
, comme illustré dans l'exemple suivant:./install -b PATH
L'option
-b
spécifie un autre emplacement. - 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"
Où EDGE_SSO_IP_DNS est l'adresse IP de la machine qui héberge le module SSO Apigee. Si vous avez configuré TLS sur l'authentification unique Apigee, utilisez
https
et le port TLS approprié numéro. - (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 numéro de port TLS approprié.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.
- Appelez
get_token
pour obtenir le jeton d'accès OAuth2, comme le montre l'exemple suivant:get_token -u EMAIL_ADDRESS
Où 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
. - 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
- 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. 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 des 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 l'en-tête Authorization
. 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'