Sauter les liens

Connexion FileMaker à une API REST avec OAuth

Conseils et guides FileMaker

Connexion FileMaker à une API REST avec oAuth

En Allemagne, les API REST sont souvent utilisées dans de nombreux secteurs pour relier des applications et des systèmes entre eux. Elles sont particulièrement répandues dans le commerce électronique, où des plateformes comme Shopware, Magento et WooCommerce utilisent des API pour intégrer des produits, des commandes et des informations sur les clients avec des systèmes ERP ou des services de paiement comme PayPal et Klarna. Les API sont également très répandues dans le secteur financier grâce à l'Open Banking et aux directives PSD2, ce qui permet à des banques comme N26 et la Deutsche Bank de transmettre des données en toute sécurité à des fournisseurs tiers. Dans la logistique, les API aident les prestataires de services d'expédition comme DHL et Hermes à suivre les envois et à automatiser les processus d'expédition. Les API sont également utilisées dans le secteur de la santé pour gérer les données des patients et dans l'administration publique pour numériser les services aux citoyens.

Le lien avec une API REST dans FileMaker est un cas d'utilisation fréquent pour intégrer des données de systèmes externes dans des bases de données FileMaker ou pour envoyer des données à ces systèmes. L'authentification pour ces API REST s'effectue souvent par le biais de OAuth ou Authentification basée sur un jeton. Vous trouverez ci-dessous des instructions détaillées sur la manière de procéder.

 

FileMaker ERP avec intégration
Interface REST API

Plus d'informations
Logiciel ERP professionnel

1. Principes de base de la connexion REST API

Avant de commencer l'authentification, nous devons activer l'API REST via la fonction FileMaker Insert from URL qui est utilisé dans un script. Les API REST utilisent généralement Méthodes HTTP comme

  • GET: récupérer les données de l'API.
  • POST: envoyer des données à l'API.
  • PUT: Actualiser les données existantes.
  • DELETE: Supprimer les données.

Le point principal est cependant Inscription à l'API pour pouvoir utiliser ces méthodes.

2. HTTP-Basic-Auth

L'une des formes d'authentification les plus simples est HTTP-Basic-Auth. Pour ce faire, le nom d'utilisateur et le mot de passe sont Autorisation-de la requête HTTP.

exemple :

 
Définir la variable [ $username ; Valeur : "your_username" ]
Définir une variable [ $password ; Valeur: "votre_mot de passe" ]
Définir une variable [ $url ; Valeur: "https://api.example.com/resource" ]

# Combiner le nom d'utilisateur et le mot de passe, puis encoder en base64
Définir une variable [ $encodedAuth ; Valeur: Base64Encode ( $username & " :" & $password ) ]

# Définir les options cURL
Définir une variable [ $cURLOptions ; Valeur:
"--header \"Authorization : Basic " & $encodedAuth & "\"" ]

# Exécuter une requête API
Insérer depuis URL [ Sélection ; Dialogue : Off ; Destination : $response ; URL : $url ; options cURL : $cURLOptions ]

Dans cet exemple, le nom d'utilisateur et le mot de passe sont convertis en une chaîne de caractères encodée en Base64, puis enregistrés en tant que En-tête d'autorisation envoyés.

3. Authentification OAuth 2.0

OAuth 2.0 est un framework standardisé qui offre une Accès basé sur un jeton sur une API est possible. Il est disponible dans différents flux :

a) Flux de données d'identification des clients

Ce flux est utilisé lorsque l'application communique directement avec l'API et qu'aucune interaction avec l'utilisateur n'est nécessaire. Ici, un Jeton d'accès demandé par l'API.

  1. Demander un jeton d'accès: Pour obtenir un jeton d'accès, un Requête POST est envoyé au point final du jeton de l'API.
 

Définir la variable [ $client_id ; Valeur : "your_client_id" ]
Définir une variable [ $client_secret ; Valeur: "votre_client_secret" ]
Définir une variable [ $url ; Valeur: "https://auth.example.com/oauth/token" ]
# Définir les options cURL
Set Variable [ $cURLOptions ; Valeur:
"--data-urlencode \"client_id=" & $client_id & "\" " &
"--data-urlencode \"client_secret=" & $client_secret & "\" " &
"--data-urlencode \"grant_type=client_credentials\"" ]
# Exécuter une requête API
Insérer à partir de l'URL [ Sélection ; Dialogue : Off ; Destination : $response ; URL : $url ; options cURL : $cURLOptions ]
Extraire le jeton # du JSON
Définir une variable [ $accessToken ; Valeur : JSONGetElement ( $response ; "access_token" ) ]

  1. Demande d'API avec le jeton d'accès: Une fois le jeton récupéré, il peut être utilisé pour l'authentification auprès de l'API.

Définir une variable [ $api_url ; Valeur: "https://api.example.com/protected_resource" ]
# Définir les options cURL avec un jeton Bearer
Définir une variable [ $cURLOptions ; Valeur :
"--header \"Authorization : Bearer " & $accessToken & "\"" ]
Exécuter une requête API
Insérer à partir de l'URL [ Sélection ; Dialogue : Off ; Destination : $api_response ; URL : $api_url ; options cURL : $cURLOptions ]

b) Flux du code d'autorisation

Ce flux est utilisé lorsque l'API demande à l'utilisateur de s'authentifier et d'accorder l'accès à l'application. Le flux comprend généralement les étapes suivantes :

  1. Rediriger les utilisateurs vers la page de connexion de l'API: Une fenêtre de navigation s'ouvre, dans laquelle l'utilisateur saisit ses données d'accès et donne l'autorisation à l'application.
  2. Recevoir le code d'autorisation: Une fois l'inscription réussie, un Code d'autorisation envoyé à une URL de redirection.
  3. Échanger un code d'autorisation contre un jeton d'accès: Le code d'autorisation permet de demander un jeton d'accès.
  4. Demande d'API avec le jeton d'accèsComme dans le Flux de données d'identification des clients le jeton d'accès est placé dans le Autorisation-de la requête API.

4. Authentification basée sur un jeton (clés API)

Lors de la Authentification basée sur un jeton on utilise souvent un système statique Clé API qui est généré par l'API et qui est utilisé dans le Autorisation-ou comme paramètre d'URL à l'API.

exemple :

Définir une variable [ $api_key ; Valeur : "your_api_key" ]
Définir une variable [ $url ; Valeur: "https://api.example.com/resource" ]# Définir les options cURL
Définir une variable [ $cURLOptions ; Valeur:
"--header \"Authorization : Bearer " & $api_key & "\"" ]# Perform the API call
Insérer à partir de l'URL [ Sélection ; Dialogue : Arrêt ; Destination : $response ; URL : $url ; options cURL : $cURLOptions ]

En alternative, le Clé API être envoyés comme paramètres d'URL :

Définir une variable [ $url ; Valeur: "https://api.example.com/resource?api_key=your_api_key" ]
Exécuter une requête API
Insérer à partir de l'URL [ Sélection ; Dialogue : Arrêt ; Destination : $response ; URL : $url ]

5. Gestion des jetons

Dans de nombreuses API, le Jeton d'accès après un certain temps. Pour cela, un Jeton de rafraîchissement peut être utilisé pour obtenir un nouveau jeton d'accès sans que l'utilisateur ait à s'authentifier à nouveau.

Définir une variable [ $refresh_token ; Valeur: "votre_refresh_token" ]
Définir une variable [ $url ; Valeur: "https://auth.example.com/oauth/token" ]
# Définir les options cURL pour le rafraîchissement des jetons
Définir une variable [ $cURLOptions ; Valeur:
"--data-urlencode \"refresh_token=" & $refresh_token & "\" " &
"--data-urlencode \"client_id=" & $client_id & "\" " &
"--data-urlencode \"client_secret=" & $client_secret & "\" " &
"--data-urlencode \"grant_type=refresh_token\"" ]
# Exécuter le rafraîchissement de jeton
Insérer à partir de l'URL [ Sélection ; Dialogue : Arrêt ; Destination : $response ; URL : $url ; options cURL : $cURLOptions ]
# Extraire le nouveau jeton d'accès de la réponse JSON
Définir une variable [ $new_accessToken ; Valeur: JSONGetElement ( $response ; "access_token" ) ]

gFM-Business Open Source FileMaker ERP de base

Le logiciel du cours accéléré

Télécharger gratuitement
ERP open source basé sur Claris FileMaker

Connexion OAuth en tant que fonction personnalisée FileMaker

Pour obtenir une Fonction personnalisée FileMaker pour programmer une fonction de connexion à une API REST qui prend en charge, via des paramètres, différentes méthodes d'authentification telles que Basic Auth, OAuth2, ou des clés d'API, nous pouvons utiliser la flexibilité de FileMaker. La fonction doit accepter de manière dynamique tous les paramètres pertinents et générer le format approprié en fonction du type d'authentification. La fonction nécessite le logiciel gratuit FileMaker Plugin BaseElementscar FileMaker utilise la fonction Insérer à partir de l'URL n'est pas pris en charge dans une fonction propre.

Idée de base :

La fonction personnalisée doit être contrôlée par des paramètres contenant l'URL de l'API, le type d'authentification et les données nécessaires telles que le nom d'utilisateur, le mot de passe, l'ID du client, le secret du client ou le jeton. La fonction procédera ensuite à l'authentification et enverra les données de connexion à l'API sous la forme appropriée.

Structure de la fonction :

Paramètres :

  • apiURL: L'URL de l'API REST.
  • authType: Le type d'authentification (par ex. "Basic", "OAuth2", "API-Key").
  • nom d'utilisateur: nom d'utilisateur pour Basic Auth.
  • mot de passe: mot de passe pour Basic Auth.
  • clientID: ID client pour OAuth2.
  • clientSecret: Secret client pour OAuth2.
  • token: jeton d'API ou jeton d'accès OAuth2.
  • extraParams: Paramètres supplémentaires pour la demande (par exemple grant_type pour OAuth2).

Exemple de fonction personnalisée :

/*
Nom de la fonction : API_Login
Paramètres :
apiURL (texte) - l'URL de l'API
authType (texte) - Le type d'authentification (Basic, OAuth2, clé API)
user (texte) - nom d'utilisateur (pour Basic Auth ou OAuth2)
password (texte) - mot de passe (pour Basic Auth ou OAuth2)
clientID (texte) - ID client (pour OAuth2)
clientSecret (texte) - Secret client (pour OAuth2)
token (texte) - Jeton d'accès (pour la clé API ou OAuth2)
extraParams (texte) - Paramètres supplémentaires (pour OAuth2)
Renvoie :
Réponse de l'API ou message d'erreur
*/

DéfinirVar ( [
//

Variables de configuration
url = apiURL ;
authMethod = authType ;
basicAuthHeader = "Autorisation : Basic " & Base64Encode(utilisateur & " :" & mot de passe) ;
tokenAuthHeader = "Autorisation : Bearer " & token ;

// Préparer les données pour OAuth2 Client Credentials Flow
oauthData = "client_id=" & clientID & "&client_secret=" & clientSecret & "&grant_type=client_credentials

// Définir les options cURL en fonction du type d'authentification
cURL_Options =
Si(
   authMethod = "Basic" ; basicAuthHeader ;
   authMethod = "OAuth2" ; "" ;
   authMethod = "Clé API" ; tokenAuthHeader ;
   ""
);

// Envoyer la demande en fonction de la méthode d'authentification
result = Falls(
   authMethod = "Basic" ; BE_HTTP_GET(url ; cURL_Options) ;
   authMethod = "OAuth2" ; BE_HTTP_POST(url ; oauthData ; "Content-Type : application/x-www-form-urlencoded") ;
   authMethod = "Clé API" ; BE_HTTP_GET(url ; cURL_Options) ; "Méthode d'authentification invalide" ) ] ;

// Retourner le résultat de la requête API
result
)

Fonctionnement :

  1. La fonction vérifie quel type d'authentification est utilisé (Basic, OAuth2, Clé API).
  2. Selon le type d'authentification, différents Options cURL est généré :
    • Auth de baseLe nom d'utilisateur et le mot de passe sont convertis en une chaîne cryptée en Base64 et stockés dans le fichier Autorisation-est envoyé.
    • OAuth2 Client Credentials Flow: L'ID et le secret du client sont envoyés dans le corps de la requête pour obtenir un jeton d'accès.
    • Clé API ou jeton d'accès OAuth2: le jeton est directement utilisé comme Bearerdans l'en-tête.
  3. La fonction personnalisée utilise les fonctions get et put HTTP du plug-in FileMaker BaseElements pour la connexion au serveur, car les Insérer à partir de l'URL-La fonction d'exportation n'est pas prise en charge par FileMaker dans ses propres fonctions, mais uniquement dans les scripts.

Exemple d'appel :

API_Login(
"https://api.example.com/login",
"Basic",
"myUsername",
"myPassword",
"",
"",
""
)

Possibilités d'extension :

  • Gestion des erreurs: La fonction peut être étendue pour reconnaître les codes d'erreur de l'API et renvoyer les messages correspondants.
  • Renouvellement du jeton: Si un jeton d'accès expire, la fonction peut être étendue pour demander automatiquement un nouveau jeton.
  • Prise en charge d'autres flux OAuth2Le code pourrait être étendu de manière à inclure également Flux du code d'autorisation et Flux de subventions par mot de passe être soutenus.

Cette fonction personnalisée offre un moyen flexible d'intégrer différents mécanismes d'authentification avec des API REST dans FileMaker et peut être facilement adaptée à des besoins spécifiques.

Quatre plateformes ERP FileMaker pour des processus opérationnels optimaux, à acheter ou à louer.

Demander des informations
Logiciel ERP professionnel

Foire aux questions sur FileMaker et l'API REST avec oAuth

  • Qu'est-ce que OAuth et pourquoi l'utilise-t-on pour se connecter à une API REST ?
    • OAuth est un protocole standard ouvert utilisé pour l'autorisation sécurisée des accès aux API. Il permet à des applications telles que FileMaker d'accéder aux ressources protégées d'une API sans que les utilisateurs aient à saisir directement leurs identifiants. OAuth offre un moyen sécurisé d'autorisation sans divulguer les informations d'identification sensibles.
  • Comment fonctionne le flux OAuth lors de la connexion à une API REST ?
    • Le flux OAuth commence généralement par l'envoi par FileMaker d'une requête à un serveur d'autorisation afin d'obtenir un jeton. Ce jeton est ensuite utilisé pour accéder à l'API REST. Il existe différents types de flux OAuth, mais le plus courant est le flux de code d'autorisation, dans lequel l'utilisateur est authentifié via une page de connexion de l'API et FileMaker reçoit ensuite un jeton d'accès.
  • De quelles informations ai-je besoin pour connecter FileMaker à une API REST via OAuth ?
    • Vous avez besoin de l'ID client, du secret client, de l'URI de redirection et des URL d'autorisation et de token de l'API. Vous obtenez généralement ces informations auprès du fournisseur de l'API après avoir enregistré une application. FileMaker utilise ces données pour s'authentifier via le processus OAuth.
  • Comment authentifier FileMaker avec OAuth par rapport à une API REST ?
    • Vous devez d'abord initialiser le processus OAuth en effectuant une demande d'autorisation via FileMaker à l'aide de la fonction Insert from URL. Une fois l'autorisation réussie, vous recevrez un jeton d'accès que vous pourrez utiliser dans d'autres requêtes API pour accéder à des ressources protégées.
  • Comment enregistrer le jeton OAuth dans FileMaker pour les appels ultérieurs de l'API ?
    • Le jeton reçu est généralement stocké dans une rubrique de FileMaker afin d'être utilisé pour de futurs appels à l'API. Les jetons ont souvent une durée de vie limitée et vous devez les renouveler régulièrement en demandant un nouveau jeton.
  • Que se passe-t-il lorsque le jeton OAuth expire ?
    • Si le jeton d'accès expire, vous recevez une erreur de l'API (par exemple, le code d'état HTTP 401 "Unauthorized"). Dans ce cas, vous devez utiliser le jeton Refresh pour obtenir un nouveau jeton d'accès sans que l'utilisateur ait à se connecter à nouveau. Le Refresh Token est fourni pendant le processus OAuth initial.
  • Comment obtenir un jeton Refresh dans FileMaker ?
    • Lorsque vous passez par le premier flux OAuth, vous recevez non seulement un jeton d'accès, mais aussi un jeton Refresh. Ce jeton de rafraîchissement peut être enregistré dans FileMaker. Dès que le jeton d'accès expire, un nouveau jeton d'accès peut être demandé en utilisant le jeton de rafraîchissement sans réauthentifier l'utilisateur.
  • Quelles précautions de sécurité dois-je prendre lorsque j'utilise OAuth dans FileMaker ?
    • Vous devez veiller à ce que les données sensibles telles que Client Secret, Access Token et Refresh Token soient stockées en toute sécurité. Utilisez des rubriques cryptées dans FileMaker et sécurisez la base de données avec les contrôles d'accès appropriés. En outre, assurez-vous que vous utilisez HTTPS pour le trafic de données avec l'API.
  • FileMaker peut-il demander automatiquement un nouveau token lorsque l'ancien a expiré ?
    • Oui, vous pouvez configurer un script dans FileMaker pour vérifier le code d'état d'une requête API. Si une erreur 401 est renvoyée en raison de l'expiration d'un jeton, le script peut automatiquement demander un nouveau jeton à l'aide du jeton Refresh stocké et renvoyer la requête.
  • Que faire si l'API REST utilise OAuth 2.0, mais que FileMaker ne prend en charge que l'authentification de base ?
    • Si une API nécessite OAuth 2.0, vous devez intégrer complètement le flux OAuth dans FileMaker. L'authentification de base ne suffira pas. Vous pouvez toutefois créer un script dans FileMaker qui automatise l'ensemble du processus OAuth (demande d'autorisation, stockage des jetons, renouvellement des jetons) et garantit que tous les appels à l'API sont effectués avec les jetons appropriés.

Résumé

FileMaker offre la possibilité de s'adresser aux API REST et d'utiliser différents mécanismes d'authentification tels que OAuthAuth de base et Authentification basée sur un jeton de soutenir le projet. En utilisant Insérer à partir de l'URL et Options cURL vous pouvez gérer des processus d'authentification complexes et vous assurer que vos solutions FileMaker communiquent de manière transparente avec des systèmes externes. Dès que la connexion à l'API REST s'effectue sans erreur, vous pouvez appeler les points finaux souhaités de votre API et traiter les données fournies.

Partager cette page :

Un logiciel ERP aussi flexible que votre entreprise.
Nous nous ferons un plaisir de vous conseiller.

Logiciel ERP personnalisable pour Mac, Windows et iOS.

Vous êtes ici : Connexion FileMaker à une API REST avec OAuth