## À quoi sert la restriction par adresse IP

Tant que la liste des adresses autorisées est vide, l'API accepte les requêtes
de n'importe où — le portail l'indique par le texte `The API is accessible from any IP
address`. Dès que vous ajoutez la première adresse à la liste, l'API ne traite
plus que les requêtes provenant des adresses listées.

Aucun de vos identifiants n'expire pour autant. L'[Application ID](https://www.bulkgate.com/fr/documentation/administration-api-et-tokens/administration-api/)
comme le [jeton API](https://www.bulkgate.com/fr/documentation/administration-api-et-tokens/tokens-d-api/) restent valides, ils ne peuvent
simplement pas être utilisés depuis une autre adresse qu'une adresse autorisée.

## Où configurer la restriction

1. Dans le menu du portail, cliquez sur `Modules et API`
2. Sous `Mes API et modules`, cliquez sur la carte de votre application
3. Restez sur l'onglet `Réglages` et faites défiler jusqu'à la partie `API access restrictions`
4. Sur la carte `Allowed IP addresses`, cliquez sur `Configurer`
5. Saisissez l'adresse dans le champ `Enter the IP address` et cliquez sur `Ajouter`

![La partie API access restrictions avec la carte Allowed IP addresses](docs:api-ip-restrictions/allowed-ip_en)

La fenêtre `Add IP address` le signale d'emblée par le message `The API
will only be accessible from the listed IP addresses!` — la restriction prend
effet dès que la première adresse est enregistrée.

> [!WARNING]
> Saisissez l'adresse depuis laquelle votre application appelle l'API, et non celle de
> l'ordinateur sur lequel vous effectuez la configuration. Après l'enregistrement, le portail
> ne vérifie pas que quelqu'un se connecte réellement depuis l'adresse saisie.

## Quelles adresses le portail accepte

| Règle | Comportement |
|:--|:--|
| Une adresse précise | IPv4 comme IPv6 ; les plages et la notation avec masque (`/24`) ne sont pas acceptées |
| Adresses publiques uniquement | Les plages locales et réservées se soldent par le message `Enter a public IP address, local and reserved ranges cannot be used` |
| Notation valide | Une valeur incohérente se solde par le message `Invalid IP address` |
| Pas de doublons | Une adresse déjà présente dans la liste ne peut pas être ajoutée deux fois |

Les plages non publiques comprennent `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`,
`127.0.0.0/8` et, pour IPv6, `fc00::/7` ou `fe80::/10`. Le bouton `Ajouter` reste
désactivé tant que la valeur saisie n'est pas valide.

Une adresse écrite sous forme d'IPv4 intégrée dans IPv6 — c'est-à-dire `::ffff:1.2.3.4` ou la
forme 6to4 `2002:…` — est convertie par le portail en l'IPv4 correspondante. Le nombre
d'adresses dans la liste n'est pas limité.

## Comment modifier la liste ou supprimer la restriction

Une fois la première adresse ajoutée, la carte se transforme en liste. Le bouton `Ajouter`
ajoute une autre adresse et l'icône de corbeille sur une ligne en supprime une — vous
confirmez la suppression avec le bouton `Effacer`. La flèche à côté de `Ajouter` ouvre un
menu qui vide toute la liste d'un coup.

Dès qu'il ne reste plus aucune adresse dans la liste, la restriction est désactivée et
l'API est de nouveau accessible de n'importe où.

## Ce qui arrive à une requête provenant d'une autre adresse

Une requête provenant d'une adresse qui ne figure pas dans la liste se solde par une
réponse avec le code HTTP `401` et le type d'erreur `unknown_identity` — le même que
renvoie un jeton invalide. Les autres erreurs sont listées sur la page
[Types d'erreurs API](https://www.bulkgate.com/fr/documentation/administration-api-et-tokens/types-d-erreurs-api/).
