L'authentification de base est un moyen de s'authentifier lors des appels à l'API Management Edge.
Par exemple, vous pouvez envoyer la requête curl suivante à l'API Management Edge pour accéder aux informations sur 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 d'authentification de base. 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/orgName
Après avoir activé un IdP externe pour l'authentification, vous pouvez éventuellement désactiver l'authentification de base. Si vous désactivez l'authentification de base, tous les scripts (tels que Maven, shell et apigeetool) qui s'appuient sur les appels d'API Management Edge compatibles avec l'authentification de base ne fonctionnent plus. Vous devez mettre à jour tous les appels d'API et scripts qui utilisent l'authentification de base pour transmettre des jetons d'accès OAuth2 dans l'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 vos identifiants 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, l'utilisateur sera invité à saisir ses identifiants.
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 sur stdout. Vous pouvez ensuite utiliser une extension de navigateur telle que Postman ou l'intégrer dans une variable d'environnement pour l'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 est l'adresse IP ou le nom DNS de la machine hébergeant le module Apigee SSO. Si vous avez configuré TLS sur l'authentification unique Apigee, utilisez
httpset le numéro de port TLS approprié. - Décompressez le bundle
ssocli-bundle.zip, comme illustré dans l'exemple suivant :unzip ssocli-bundle.zip
- Installez
get_tokendans/usr/local/bin, comme illustré dans l'exemple suivant :./install -b path
L'option
-bspécifie un autre emplacement. - Définissez la variable d'environnement
SSO_LOGIN_URLsur l'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 de la machine hébergeant le module Apigee SSO. Si vous avez configuré TLS sur l'authentification unique Apigee, utilisez
httpset le numéro de port TLS approprié. - (SAML uniquement) 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 Apigee, utilisez
httpset 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 obtenir un nouveau code secret ou que vous utilisiez le code secret avec
get_tokenpour générer 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 de code secret pour vous authentifier auprès d'un IdP LDAP.
- Appelez
get_tokenpour obtenir le jeton d'accès OAuth2, comme illustré dans l'exemple suivant :get_token -u emailAddress
Où emailAddress est l'adresse e-mail d'un utilisateur Edge.
(SAML uniquement) Saisissez le code secret sur la ligne de commande en plus de l'adresse e-mail, comme illustré dans l'exemple suivant :
get_token -u emailAddress -p passcode
L'utilitaire
get_tokenobtient le jeton d'accès OAuth2, l'affiche à l'écran, puis 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 illustré dans l'exemple suivant :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 illustré dans l'exemple suivant :
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.
(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 Management pour obtenir et actualiser des jetons
La page Utiliser la sécurité OAuth2 avec l'API de gestion Apigee Edge explique comment utiliser l'API de gestion Edge pour obtenir et actualiser des jetons. Vous pouvez également utiliser des appels d'API Edge pour obtenir des jetons générés à partir d'assertions SAML.
La seule différence entre les appels d'API documentés dans Utiliser la sécurité OAuth2 avec l'API de gestion Apigee Edge est que l'URL de l'appel doit faire référence au nom de votre 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 un identifiant client OAuth2 réservé dans l'en-tête Authorization. L'appel affiche 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 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'
(SAML) 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'
Notez que l'authentification avec un IdP SAML nécessite un code secret temporaire, contrairement à un IdP LDAP.
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=refreshToken'