---
title: "Comment utiliser Apache APISIX Auth avec Okta - API7.ai"
description: "Utilisation du plugin OpenID Connect d'Apache APISIX pour l'authentification centralisée des identités."
url: "https://api7.ai/fr/blog/how-to-use-apisix-auth-with-okta"
---

[Blog](https://api7.ai/fr/blog)

[Products](https://api7.ai/fr/category/products)[Technology](https://api7.ai/fr/category/technology)[Ecosystem](https://api7.ai/fr/category/ecosystem)[Case Study](https://api7.ai/fr/category/usercase)[Team & Community](https://api7.ai/fr/category/community)

Search

⌘ + K

[Blog](https://api7.ai/blog)

Ecosystem

# Comment utiliser Apache APISIX Auth avec Okta

Fei Han

September 7, 2021

[Ecosystem](https://api7.ai/category/ecosystem)

Utilisation du plugin OpenID Connect d'Apache APISIX pour l'authentification centralisée des identités\
Utiliser le plugin OpenID Connect d'Apache APISIX pour configurer l'authentification Okta est un processus simple en trois étapes. Cela vous permet de passer du mode d'authentification traditionnel au mode d'authentification centralisée des identités. Les sections suivantes décrivent les étapes pour configurer l'authentification Okta en utilisant le plugin OpenID Connect pour Apache APISIX.

Le mode d'authentification centralisée des identités, comparé au mode d'authentification traditionnel, présente les avantages suivants :

1. L'authentification centralisée simplifie le processus de développement des applications.
2. L'authentification centralisée améliore la sécurité des entreprises.

## Prérequis

Avoir un compte Okta prêt à l'emploi.

## Étape 1 : Configuration d'Okta

1. Connectez-vous à votre compte Okta, cliquez sur "Create App Integration" pour créer une application Okta. ![Create App Integration](https://static.api7.ai/2022/10/03/633a432f3f24b.png?imageMogr2/format/webp)
2. Sélectionnez "OIDC - OpenID Connect" comme méthode de connexion, et choisissez "Web Application" comme type d'application. ![Create a new App Integration](https://static.api7.ai/2022/10/03/633a432f490b8.png?imageMogr2/format/webp)
3. Définissez l'URL de redirection pour la connexion et la déconnexion. Les "Sign-in redirect URIs" sont les liens autorisés à être redirigés après une connexion réussie, et les "Sign-out redirect URIs" sont les liens redirigés après une déconnexion réussie. Dans cet exemple, nous définissons les deux URI de redirection à <http://127.0.0.1:9080/>. ![Set the redirect URL for login and logout](https://static.api7.ai/2022/10/03/633a432e8c4ee.png?imageMogr2/format/webp)
4. Après avoir terminé les paramètres, cliquez sur "Save" pour enregistrer les modifications. ![save the changes](https://static.api7.ai/2022/10/03/633a432f09398.png?imageMogr2/format/webp)
5. Visitez la page Générale de l'application pour obtenir les configurations suivantes, nécessaires pour configurer le plugin OpenID Connect d'Apache APISIX.

- Client ID : L'ID de l'application, correspondant à `client_id` ci-dessous.
- Client secret : La clé de l'application, correspondant à `client_secret` ci-dessous.
- Domaine Okta : Le nom de domaine utilisé par l'application, correspondant à `{ISSUER}` ci-dessous.

![obtain configuration](https://static.api7.ai/2022/10/03/633a432f0dc24.png?imageMogr2/format/webp)

## Étape 2 : Installation d'Apache APISIX

### Installation des dépendances

L'environnement d'exécution d'Apache APISIX nécessite des dépendances sur NGINX et etcd. Avant d'installer Apache APISIX, veuillez installer les dépendances en fonction du système d'exploitation que vous utilisez. Nous fournissons les instructions d'installation des dépendances pour CentOS7, Fedora 31 & 32, Ubuntu 16.04 & 18.04, Debian 9 & 10, et MacOS. Veuillez consulter [Install Dependencies](https://apisix.apache.org/docs/apisix/install-dependencies/) pour plus de détails.

### Installation via un package RPM (CentOS 7)

Cette méthode d'installation est adaptée à CentOS 7. Veuillez exécuter la commande suivante pour installer Apache APISIX.

```
sudo yum install -y https://github.com/apache/apisix/releases/download/2.7/apisix-2.7-0.x86_64.rpm
```

### Installation via Docker

Veuillez consulter : [Installing Apache APISIX with Docker](https://apisix.apache.org/docs/apisix/how-to-build/#installation-via-docker).

### Installation via Helm Chart

Veuillez consulter : [Installing Apache APISIX with Helm Chart](https://apisix.apache.org/docs/apisix/how-to-build/#installation-via-helm-chart).

### Installation via Source Release

1. Créez un répertoire nommé `apisix-2.7`.

   ```
   mkdir apisix-2.7
   ```

2. Téléchargez le package source de la version Apache APISIX.

   ```
   wget https://downloads.apache.org/apisix/2.7/apache-apisix-2.7-src.tgz
   ```

   Vous pouvez également télécharger le package source de la version Apache APISIX depuis le site web d'Apache APISIX. Le [Site Officiel d'Apache APISIX - Page de Téléchargement](https://apisix.apache.org/downloads/) propose également des packages source pour Apache APISIX, APISIX Dashboard et [APISIX Ingress Controller](https://github.com/apache/apisix-ingress-controller).

3. Décompressez le package source de la version Apache APISIX.

   ```
   tar zxvf apache-apisix-2.7-src.tgz -C apisix-2.7
   ```

4. Installez les bibliothèques Lua nécessaires à l'exécution.

   ```
   # Passez au répertoire apisix-2.7
   cd apisix-2.7
   # Créez les dépendances
   make deps
   ```

### Initialisation des dépendances

Exécutez la commande suivante pour initialiser le fichier de configuration NGINX et etcd.

```
# initialisez le fichier de configuration NGINX et etcd
make init
```

## Étape 3 : Démarrez Apache APISIX et configurez la route correspondante

1. Exécutez la commande suivante pour démarrer Apache APISIX.

   ```
   apisix start
   ```

2. Créez une route et configurez le plugin OpenID Connect. L'exemple de code suivant crée une route via l'API Admin d'Apache APISIX, en définissant le chemin en amont sur httpbin.org, un service backend simple pour recevoir et répondre aux requêtes. Nous utiliserons la page get de httpbin.org. Veuillez consulter [http bin get](http://httpbin.org/#/HTTP_Methods/get_get) pour plus d'informations. Pour les éléments de configuration spécifiques, veuillez consulter le [Plugin OpenID Connect d'Apache APISIX](https://apisix.apache.org/docs/apisix/plugins/openid-connect/).

Les champs de configuration OpenID Connect sont listés ci-dessous :

| Champ                                    | Valeur par défaut     | Description                                                                                                                                                                                             |
| ---------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| client\_id                               | ""                    | ID client OAuth.                                                                                                                                                                                        |
| client\_secret                           | ""                    | Secret client OAuth.                                                                                                                                                                                    |
| discovery                                | ""                    | Points de terminaison de découverte de service pour les fournisseurs d'identité.                                                                                                                        |
| scope                                    | openid                | Étendue des ressources à accéder.                                                                                                                                                                       |
| relm                                     | apisix                | Spécifie les informations d'authentification de l'en-tête de réponse WWW-Authenticate.                                                                                                                  |
| bearer\_only                             | false                 | Indique si le token dans l'en-tête de la requête doit être vérifié.                                                                                                                                     |
| logout\_path                             | /logout               | URI de déconnexion.                                                                                                                                                                                     |
| redirect\_uri                            | request\_uri          | L'URI vers laquelle le fournisseur d'identité redirige, par défaut l'adresse de la requête.                                                                                                             |
| timeout                                  | 3                     | Temps d'expiration de la requête, en secondes.                                                                                                                                                          |
| ssl\_verify                              | false                 | Vérifie le certificat SSL du fournisseur d'identité.                                                                                                                                                    |
| introspection\_endpoint                  | ""                    | URL du point de terminaison d'authentification du token du fournisseur d'identité, qui sera extrait de la réponse de découverte si laissé vide.                                                         |
| introspection\_endpoint\_auth\_method    | client\_secret\_basic | Nom de la méthode d'authentification pour l'introspection du token.                                                                                                                                     |
| public\_key                              | ""                    | Clé publique pour un token d'authentification.                                                                                                                                                          |
| token\_signing\_alg\_values\_expected    | ""                    | Algorithme pour les tokens d'authentification.                                                                                                                                                          |
| set\_access\_token\_header               | true                  | Indique si le token d'accès doit être inclus dans l'en-tête de la requête.                                                                                                                              |
| access\_token\_in\_authorization\_header | false                 | Indique si le token d'accès doit être placé dans l'en-tête Authorization. Le token d'accès est placé dans l'en-tête Authorization lorsque cette valeur est true et dans l'en-tête X-Access-Token sinon. |
| set\_id\_token\_header                   | true                  | Indique si le token ID doit être inclus dans l'en-tête X-ID-Token de la requête.                                                                                                                        |
| set\_userinfo\_header                    | true                  | Indique si les informations utilisateur doivent être incluses dans l'en-tête X-Userinfo de la requête.                                                                                                  |

```
curl  -XPOST 127.0.0.1:9080/apisix/admin/routes -H "X-Api-Key: edd1c9f034335f136f87ad84b625c8f1" -d '{
    "uri":"/*",
    "plugins":{
        "openid-connect":{
            "client_id":"{YOUR_CLIENT_ID}",
            "client_secret":"{YOUR_CLIENT_SECRET}",
            "discovery":"https://{YOUR_ISSUER}/.well-known/openid-configuration",
            "scope":"openid profile",
            "bearer_only":false,
            "realm":"master",
            "introspection_endpoint_auth_method":"client_secret_post",
            "redirect_uri":"http://127.0.0.1:9080/"
        }
    },
    "upstream":{
        "type":"roundrobin",
        "nodes":{
            "httpbin.org:80":1
        }
    }
}'
```

## Vérification

1. Visitez "<http://127.0.0.1:9080/get>" et la page est redirigée vers la page de connexion Okta car le plugin OpenID Connect est activé. ![visit Okta login page](https://static.api7.ai/2022/10/03/633a432ea1fd3.png?imageMogr2/format/webp)

2. Entrez le nom d'utilisateur et le mot de passe du compte Okta de l'utilisateur et cliquez sur "Sign In" pour vous connecter à votre compte Okta.

3. Après une connexion réussie, vous pouvez accéder à la page get de "httpbin.org". La page "httpbin.org/get" renverra les données demandées avec X-Access-Token, X-Id-Token et X-Userinfo comme suit.

   ```
   "X-Access-Token": "******Y0RPcXRtc0FtWWVuX2JQaFo1ZVBvSlBNdlFHejN1dXY5elV3IiwiYWxnIjoiUlMyNTYifQ.***TVER3QUlPbWZYSVRzWHRxRWh2QUtQMWRzVDVGZHZnZzAiLCJpc3MiOiJodHRwczovL3FxdGVzdG1hbi5va3RhLmNvbSIsImF1ZCI6Imh0dHBzOi8vcXF0ZXN0bWFuLm9rdGEuY29tIiwic3ViIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImlhdCI6MTYyODEyNjIyNSwiZXhwIjoxNjI4MTI5ODI1LCJjaWQiOiIwb2ExMWc4ZDg3TzBGQ0dYZzY5NiIsInVpZCI6IjAwdWEwNWVjZEZmV0tMS3VvNjk1Iiwic2NwIjpbIm9wZW5pZCIsInByb2Zpb***.****iBshIcJhy8QNvzAFD0fV4gh7OAdTXFMu5k0hk0JeIU6Tfg_Mh-josfap38nxRN5hSWAvWSk8VNxokWTf1qlaRbypJrKI4ntadl1PrvG-HgUSFD0JpyqSQcv10TzVeSgBfOVD-czprG2Azhck-SvcjCNDV-qc3P9KoPQz0SRFX0wuAHWUbj1FRBq79YnoJfjkJKUHz3uu7qpTK89mxco8iyuIwB8fAxPMoXjIuU6-6Bw8kfZ4S2FFg3GeFtN-vE9bE5vFbP-JFQuwFLZNgqI0XO2S7l7Moa4mWm51r2fmV7p7rdpoNXYNerXOeZIYysQwe2_L****",
   "X-Id-Token": "******aTdDRDJnczF5RnlXMUtPZUtuSUpQdyIsImFtciI6WyJwd2QiXSwic3ViIjoiMDB1YTA1ZWNkRmZXS0xLdW82OTUiLCJpc3MiOiJodHRwczpcL1wvcXF0ZXN0bWFuLm9rdGEuY29tIiwiYXVkIjoiMG9hMTFnOGQ4N08wRkNHWGc2OTYiLCJuYW1lIjoiUGV0ZXIgWmh1IiwianRpIjoiSUQuNGdvZWo4OGUyX2RuWUI1VmFMeUt2djNTdVJTQWhGNS0tM2l3Z0p5TTcxTSIsInZlciI6MSwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsImV4cCI6MTYyODEyOTgyNSwiaWRwIjoiMDBvYTA1OTFndHAzMDhFbm02OTUiLCJub25jZSI6ImY3MjhkZDMxMWRjNGY3MTI4YzlmNjViOGYzYjJkMDgyIiwiaWF0IjoxNjI4MTI2MjI1LCJhdXRoX3RpbWUi*****",
   "X-Userinfo": "*****lfbmFtZSI6IlpodSIsImxvY2FsZSI6ImVuLVVTIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiMjgzMDE4Nzk5QHFxLmNvbSIsInVwZGF0ZWRfYXQiOjE2MjgwNzA1ODEsInpvbmVpbmZvIjoiQW1lcmljYVwvTG9zX0FuZ2VsZXMiLCJzdWIiOiIwMHVhMDVlY2RGZldLTEt1bzY5NSIsImdpdmVuX25hbWUiOiJQZXRlciIsIm5hbWUiOiJQZXRl****"
   ```

**X-Access-Token** : Apache APISIX place le token d'accès obtenu du fournisseur d'identité dans l'en-tête de requête X-Access-Token, optionnellement via `access_token_in_authorization_header` dans la configuration du plugin pour l'en-tête Authorization.

![X-Access-Token](https://static.api7.ai/2022/10/03/633a432f58583.png?imageMogr2/format/webp)

**X-Id-Token** : Apache APISIX récupère le token ID du fournisseur d'identité et l'encode en base64 dans l'en-tête de requête X-Id-Token. Vous pouvez choisir d'activer cette fonction via `set_id_token_header` dans la configuration du plugin, activée par défaut.

![X-Id-Token](https://static.api7.ai/2022/10/03/633a432f4eb4f.png?imageMogr2/format/webp)

**X-Userinfo** : Apache APISIX récupère les informations utilisateur du fournisseur d'identité et les place dans X-Userinfo après un encodage en Base64. Vous pouvez choisir d'activer cette fonction via `set_userinfo_header` dans la configuration du plugin, activée par défaut.

![X-Userinfo](https://static.api7.ai/2022/10/03/633a432f150b4.png?imageMogr2/format/webp)

Comme vous pouvez le voir, Apache APISIX transmet les en-têtes de requête X-Access-Token, X-Id-Token et X-Userinfo à l'amont. L'amont peut analyser ces en-têtes pour obtenir les informations d'identité de l'utilisateur et les métadonnées utilisateur.

Nous avons montré le processus de construction d'une authentification centralisée des identités depuis Okta directement dans la passerelle Apache APISIX. Il est facile de s'inscrire pour un compte développeur Okta gratuit pour commencer. Notre approche réduit la charge de travail des développeurs et permet une expérience sécurisée et rationalisée.

## À propos d'Okta

Okta est une solution personnalisable, sécurisée et prête à l'emploi pour ajouter des services d'authentification et d'autorisation à vos applications. Obtenez une authentification scalable intégrée directement dans votre application sans les coûts de développement, les risques de sécurité et la maintenance associés à son codage manuel. Vous pouvez connecter n'importe quelle application dans n'importe quel langage ou sur n'importe quelle pile à Okta et définir comment vous souhaitez que vos utilisateurs se connectent. Chaque fois qu'un utilisateur tente de s'authentifier, Okta vérifie son identité et renvoie les informations nécessaires à votre application.

## À propos d'Apache APISIX

Apache APISIX est une passerelle API dynamique, en temps réel et haute performance. Apache APISIX fournit des fonctionnalités riches de gestion du trafic telles que l'équilibrage de charge, l'amont dynamique, la publication canari, la rupture de circuit, l'authentification, l'observabilité, et plus encore. Vous pouvez utiliser Apache APISIX pour gérer le trafic traditionnel nord-sud, ainsi que le trafic est-ouest entre les services. Il peut également être utilisé comme contrôleur ingress k8s.

Des centaines d'entreprises dans le monde utilisent Apache APISIX, couvrant les secteurs de la finance, de l'internet, de la fabrication, de la vente au détail, des opérateurs, comme la NASA, l'Usine Numérique de l'Union Européenne, TravelSky, Tencent, Huawei, Weibo, China Mobile, Taikang, 360, etc.

Github : <https://github.com/apache/apisix>

Site web : [https://apisix.apache.org](https://apisix.apache.org/)

Tags:

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[Okta](https://api7.ai/tags/okta)

Share article link

Share

Related Posts

[![Protéger vos API dans la nature : Une plongée approfondie dans l'intégration de WAF et API Gateway](https://static.api7.ai/uploads/2024/01/29/xV7L0ef7_APISIX_WAF_Cover.jpeg)](https://api7.ai/blog/waf-and-api-gateway-integration)

## [Protéger vos API dans la nature : Une plongée approfondie dans l'intégration de WAF et API Gateway](https://api7.ai/blog/waf-and-api-gateway-integration)

[![mTLS partout : Comment configurer TLS pour APISIX](https://static.api7.ai/uploads/2024/12/24/DVhnbLpy_apisix-mtls.png)](https://api7.ai/blog/configure-tls-for-apisix)

## [mTLS partout : Comment configurer TLS pour APISIX](https://api7.ai/blog/configure-tls-for-apisix)

Table of Contents

- [Prérequis](#pr%C3%A9requis)

- [Étape 1 : Configuration d'Okta](#%C3%A9tape-1--configuration-dokta)

- [Étape 2 : Installation d'Apache APISIX](#%C3%A9tape-2--installation-dapache-apisix)

  - [Installation des dépendances](#installation-des-d%C3%A9pendances)
  - [Installation via un package RPM (CentOS 7)](#installation-via-un-package-rpm-centos-7)
  - [Installation via Docker](#installation-via-docker)
  - [Installation via Helm Chart](#installation-via-helm-chart)
  - [Installation via Source Release](#installation-via-source-release)
  - [Initialisation des dépendances](#initialisation-des-d%C3%A9pendances)

- [Étape 3 : Démarrez Apache APISIX et configurez la route correspondante](#%C3%A9tape-3--d%C3%A9marrez-apache-apisix-et-configurez-la-route-correspondante)

- [Vérification](#v%C3%A9rification)

- [À propos d'Okta](#%C3%A0-propos-dokta)

- [À propos d'Apache APISIX](#%C3%A0-propos-dapache-apisix)

## Related Posts

[![Utiliser Apache APISIX et Authing pour mettre en œuvre une gestion centralisée de l'authentification](https://static.api7.ai/2022/10/03/633a4239d6da7.webp)](https://api7.ai/fr/blog/apisix-authing-integration)

Ecosystem

January 4, 2022

#### [Utiliser Apache APISIX et Authing pour mettre en œuvre une gestion centralisée de l'authentification](https://api7.ai/fr/blog/apisix-authing-integration)

Introduction à Apache APISIX Apache APISIX est une solution API dynamique, en temps réel et haute performance...

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Authing](https://api7.ai/tags/authing)

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[![Utilisation du plugin OpenID Connect d'Apache APISIX pour l'authentification centralisée des identités](https://static.api7.ai/uploads/2024/12/24/mwrEE1y1_apisix-okta.png)](https://api7.ai/fr/blog/how-to-use-apisix-auth-with-okta-2)

Ecosystem

September 7, 2021

#### [Utilisation du plugin OpenID Connect d'Apache APISIX pour l'authentification centralisée des identités](https://api7.ai/fr/blog/how-to-use-apisix-auth-with-okta-2)

L'utilisation du plugin OpenID Connect d'Apache APISIX pour configurer l'authentification Okta est...

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[Plugin](https://api7.ai/tags/plugin)

[![Débloquer des solutions sur mesure : exploiter Apache APISIX et Node-RED en harmonie](https://static.api7.ai/uploads/2024/03/06/uppjizMq_APISIX-node-red-cover.png)](https://api7.ai/fr/blog/apache-apisix-and-node-red)

Ecosystem

March 6, 2024

#### [Débloquer des solutions sur mesure : exploiter Apache APISIX et Node-RED en harmonie](https://api7.ai/fr/blog/apache-apisix-and-node-red)

La combinaison d'APISIX et de Node-Red permet de mettre en œuvre visuellement un processus complet de gestion des requêtes sans avoir à réécrire du code complexe ou des plugins.

[Node-Red](https://api7.ai/tags/node-red)

[APISIX Basics](https://api7.ai/tags/apisix-basics)
