Accesso di FileMaker a un'API REST con oAuth
In Germania, le API REST sono utilizzate frequentemente in molti settori per collegare tra loro applicazioni e sistemi. Sono particolarmente diffuse nell'e-commerce, dove piattaforme come Shopware, Magento e WooCommerce utilizzano le API per integrare prodotti, ordini e informazioni sui clienti con sistemi ERP o servizi di pagamento come PayPal e Klarna. Le API sono ampiamente utilizzate anche nel settore finanziario grazie alle linee guida dell'open banking e della PSD2, che consentono a banche come N26 e Deutsche Bank di trasferire in modo sicuro i dati a fornitori terzi. Nel settore della logistica, le API supportano i fornitori di servizi di spedizione come DHL e Hermes con il tracciamento delle spedizioni e l'automazione dei processi di spedizione. Le API sono utilizzate anche nel settore sanitario per gestire i dati dei pazienti e nella pubblica amministrazione per digitalizzare i servizi ai cittadini.
Il collegamento a un API REST in FileMaker è un caso d'uso comune per integrare i dati da sistemi esterni nei database FileMaker o per inviare dati a questi sistemi. L'autenticazione per queste API REST avviene spesso tramite OAuth o Autenticazione basata su token. Di seguito troverete istruzioni dettagliate sul funzionamento.
FileMaker ERP con integrazione
Interfaccia API REST
Ulteriori informazioni
1. Nozioni di base sulla connessione all'API REST
Prima di iniziare con l'autenticazione, è necessario chiamare l'API REST tramite la funzione FileMaker Inserisci da URL che viene utilizzato in uno script. Le API REST di solito utilizzano Metodi HTTP come:
GETRecuperare i dati dall'API.POSTAInviare i dati all'API.INSERIREAggiornare i dati esistenti.CANCELLARECancellare i dati.
Il punto principale, tuttavia, è la Registrazione sull'API per poter utilizzare questi metodi.
2. HTTP-Autenticazione di base
Una delle forme più semplici di autenticazione è HTTP-Autenticazione di base. Il nome utente e la password vengono inseriti nel campo Autorizzazione-dell'intestazione della richiesta HTTP.
Esempio:
Impostare la variabile [ $username ; Valore: "your_username" ]
Impostare la variabile [ $password ; Valore: "your_password" ]
Impostare la variabile [ $url ; Valore}, "https://api.example.com/resource" ]# Combinare nome utente e password, quindi codificare in base64
Impostare la variabile [ $encodedAuth ; Valore: Base64Encode ( $username & ":" & $password ) ]# Definire le opzioni di cURL
Impostare la variabile [ $cURLOptions ; Valore:
"--header \"Autorizzazione: Basic" & $encodedAuth & "\"" ]
# Eseguire la query API
Inserisci da URL [ Selezione ; Dialogo: Off ; Target: $response ; URL: $url ; cURL-Options: $cURLOptions ]
In questo esempio, il nome utente e la password vengono convertiti in una stringa codificata Base64 e salvati come file Intestazione di autorizzazione inviato.
3. Autenticazione OAuth 2.0
OAuth 2.0 è un framework standardizzato che fornisce una Accesso basato su token a un'API. È disponibile in vari flussi:
a) Flusso delle credenziali del cliente
Questo flusso viene utilizzato quando l'applicazione comunica direttamente con l'API e non è richiesta l'interazione dell'utente. In questo caso un Gettone di accesso richiesti dall'API.
- Richiesta del token di accessoPer ottenere un token d'accesso, un utente Richiesta POST viene inviato al token endpoint dell'API.
Impostare la variabile [ $client_id ; Valore: "your_client_id" ]
Impostare la variabile [ $client_secret ; Valore: "your_client_secret" ]
Impostare la variabile [ $url ; Valore}, "https://auth.example.com/oauth/token" ]# Definire le opzioni di cURL
Impostare variabile [ $cURLOptions ; Valore:
"--data-urlencode \"client_id=" & $client_id & "\" " &
"--data-urlencode \"client_secret=" & $client_secret & "\" " &
"--data-urlencode \"grant_type=client_credentials"" ]# Eseguire la query API
Inserisci da URL [ Selezione ; Dialogo: Off ; Target: $response ; URL: $url ; Opzioni cURL: $cURLOptions ]Estrarre il token # dal JSON
Impostare la variabile [ $accessToken ; Valore: JSONGetElement ( $response ; "access_token" ) ]
- Richiesta API con il token di accessoUna volta recuperato, il token può essere utilizzato per l'autenticazione con l'API.
Impostare la variabile [ $api_url ; Valore}, "https://api.example.com/protected_resource" ]# Definire le opzioni cURL con il token Bearer
Impostare la variabile [ $cURLOptions ; Valore:
"--header \"Autorizzazione: Bearer " & $accessToken & "\"" ]
# Eseguire la query API
Inserisci da URL [ Selezione ; Dialogo: Off ; Target: $api_response ; URL: $api_url ; Opzioni cURL: $cURLOptions ]
b) Flusso del codice di autorizzazione
Questo flusso viene utilizzato quando l'API richiede all'utente di autenticarsi e di concedere l'accesso all'applicazione. Il flusso consiste solitamente nei seguenti passaggi:
- Reindirizzare gli utenti alla pagina di login dell'APISi apre una finestra del browser in cui l'utente inserisce i propri dati di accesso e autorizza l'applicazione.
- Ricevere il codice di autorizzazioneDopo l'avvenuta registrazione, un Codice di autorizzazione viene inviato a un URL di reindirizzamento.
- Codice di autorizzazione allo scambio per il token di accessoIl codice di autorizzazione viene utilizzato per richiedere un token di accesso.
- Richiesta API con il token di accessoCome nella Flusso delle credenziali del cliente il token di accesso viene inserito nel campo
Autorizzazione-dell'intestazione della richiesta API.
4. Autenticazione basata su token (chiavi API)
Con il Autenticazione basata su token a statico Chiave API che viene generato dall'API e utilizzato nel file Autorizzazione-o come parametro URL dell'API.
Esempio:
Impostare la variabile [ $api_key ; Valore: "your_api_key" ]
Impostare la variabile [ $url ; Valore: "https://api.example.com/resource" ]# Definire le opzioni cURL
Impostare la variabile [ $cURLOptions ; Valore:
"--header \"Autorizzazione: Bearer " & $api_key & "\"". ]# Eseguire la chiamata API
Inserisci da URL [Selezione; Dialogo: Off; Destinazione: $response ; URL: $url ; opzioni cURL: $cURLOptions ]
In alternativa, il Chiave API vengono inviati come parametri URL:
Impostare la variabile [ $url ; Valore}, "https://api.example.com/resource?api_key=your_api_key" ]
# Eseguire la query API
Inserisci da URL [Selezione; Dialogo: Off; Destinazione: $response ; URL: $url ]5. Gestione dei gettoni
In molte API, l'elemento Gettone di accesso dopo un certo tempo. Qui un Gettone di aggiornamento può essere utilizzato per ottenere un nuovo token di accesso senza che l'utente debba autenticarsi nuovamente.
Impostare la variabile [ $refresh_token ; Valore: "tuo_refresh_token" ]
Impostare la variabile [ $url ; Valore}, "https://auth.example.com/oauth/token" ]
# Definire le opzioni cURL per l'aggiornamento del token
Impostare la variabile [ $cURLOptions ; Valore:
"--data-urlencode \"refresh_token=" & $refresh_token & "\" " &
"--data-urlencode \"client_id=" & $client_id & "\" " &
"--data-urlencode \"client_secret=" & $client_secret & "\" " &
"--data-urlencode \"grant_type=refresh_token"" ]
# Eseguire l'aggiornamento del token
Inserisci da URL [Selezione; Dialogo: Off; Destinazione: $response ; URL: $url ; opzioni cURL: $cURLOptions ]
# Estrarre il nuovo token di accesso dalla risposta JSON
Impostare la variabile [ $new_accessToken ; ValoreJSONGetElement ( $response ; "access_token" ) ]
gFM-Business Open Source FileMaker Basis-ERP
Il software per il corso intensivo
Scarica gratuitamente
Accesso OAuth come funzione personalizzata di FileMaker
Al fine di Funzione personalizzata FileMaker che esegue il login a un'API REST e supporta vari metodi di autenticazione, come Basic Auth, OAuth2 o chiavi API tramite parametri, possiamo sfruttare la flessibilità di FileMaker. La funzione deve accettare dinamicamente tutti i parametri pertinenti e generare il formato corretto a seconda del tipo di autenticazione. La funzione richiede il programma gratuito FileMaker Plugin BaseElementsperché FileMaker ha la funzione Inserisci da URL non supportato da una funzione separata.
Idea di base:
La funzione personalizzata deve essere controllata tramite parametri che contengono l'URL dell'API, il tipo di autenticazione e i dati necessari, come nome utente, password, ID cliente, segreto cliente o token. La funzione eseguirà quindi l'autenticazione e invierà i dati di accesso all'API nella forma corretta.
Struttura della funzione:
Parametri:
apiURLL'URL dell'API REST.authTypeIl tipo di autenticazione (ad esempio "Basic", "OAuth2", "API-Key").nome utenteNome utente per l'autorizzazione di base.passwordPassword per l'autorizzazione di base.clientIDID cliente per OAuth2.clientSecretSegreto del client per OAuth2.gettonetoken API o token di accesso OAuth2.extraParamParametri aggiuntivi per la richiesta (ad es.tipo_sovvenzioneper OAuth2).
Esempio di funzione personalizzata:
/*
Nome funzione: API_Login
Parametri:
apiURL (Testo) - L'URL dell'API
authType (Testo) - Il tipo di autenticazione (Basic, OAuth2, chiave API).
user (testo) - nome dell'utente (per Basic Auth o OAuth2)
password (Testo) - Password (per Basic Auth o OAuth2)
clientID (testo) - ID del cliente (per OAuth2)
clientSecret (Testo) - Segreto del cliente (per OAuth2)
token (testo) - token di accesso (per chiave API o OAuth2)
extraParams (Testo) - Parametri aggiuntivi (per OAuth2)
Restituzione:
Risposta dell'API o messaggio di errore
*/
SetVar ( [
//
Variabili di configurazione
url = apiURL;
authMethod = authType;
basicAuthHeader = "Authorisation: Basic " & Base64Encode(user & ":" & password);
tokenAuthHeader = "Authorisation: Bearer " & token;
// Preparare i dati per il flusso delle credenziali del client OAuth2
oauthData = "client_id=" & clientID & "&client_secret=" & clientSecret & "&grant_type=client_credentials";
// Impostare le opzioni di cURL in base al tipo di autenticazione
cURL_Options =
Se(
authMethod = "Basic"; basicAuthHeader;
authMethod = "OAuth2"; "";
authMethod = "API-Key"; tokenAuthHeader;
""
);
// Inviare la richiesta in base al metodo di autenticazione
risultato = Se(
authMethod = "Basic"; BE_HTTP_GET(url; cURL_Options);
authMethod = "OAuth2"; BE_HTTP_POST(url; oauthData; "Content-Type: application/x-www-form-urlencoded");
authMethod = "API-Key"; BE_HTTP_GET(url; cURL_Options); "Invalid Auth Method" ) ];
// Restituire il risultato della query API
risultato
)
Funzionalità:
- La funzione controlla il tipo di autenticazione utilizzato (
Base,OAuth2,Chiave API). - A seconda del tipo di autenticazione, diversi Opzioni cURL generato:
- Autorizzazione di baseNome utente e password sono convertiti in una stringa codificata in Base64 e memorizzati nel file
Autorizzazione-viene inviata l'intestazione. - Flusso delle credenziali del client OAuth2L'ID e il segreto del cliente vengono inviati nel corpo della richiesta per ottenere un token di accesso.
- Chiave API o token di accesso OAuth2Il token è riconosciuto direttamente come
Portatore-Il token viene inviato nell'intestazione.
- Autorizzazione di baseNome utente e password sono convertiti in una stringa codificata in Base64 e memorizzati nel file
- La funzione personalizzata utilizza le funzioni HTTP Get e Put del plugin FileMaker BaseElements per la connessione al server, perché il file
Inserisci da URL-non è supportata da FileMaker nelle proprie funzioni, ma solo negli script.
Esempio di chiamata:
API_Login(
"https://api.example.com/login",
"Basic",
"myUsername",
"myPassword",
"",
"",
""
)
Opzioni di espansione:
- Gestione degli erroriLa funzione può essere estesa per riconoscere i codici di errore dell'API e restituire i messaggi corrispondenti.
- Rinnovo del gettoneSe un token di accesso scade, la funzione può essere estesa in modo da richiedere automaticamente un nuovo token.
- Supporto per ulteriori flussi OAuth2Il codice potrebbe essere esteso in modo che Flusso del codice di autorizzazione e Flusso di concessione della password essere supportati.
Questa funzione personalizzata offre un modo flessibile per integrare diversi meccanismi di autenticazione con le API REST di FileMaker e può essere facilmente personalizzata per soddisfare requisiti specifici.
Quattro piattaforme ERP FileMaker per processi operativi ottimizzati da acquistare e noleggiare.
Richiesta di informazioni
Domande frequenti su FileMaker e REST-API con oAuth
- Che cos'è OAuth e perché si usa per accedere a un'API REST?
- OAuth è un protocollo standard aperto utilizzato per l'autorizzazione sicura dell'accesso alle API. Consente ad applicazioni come FileMaker di accedere alle risorse protette di un'API senza che gli utenti debbano inserire direttamente i propri dati di accesso. OAuth fornisce un modo sicuro per autorizzare senza condividere credenziali sensibili.
- Come funziona il flusso OAuth quando si accede a un'API REST?
- Il flusso OAuth inizia solitamente con l'invio da parte di FileMaker di una richiesta a un server di autorizzazione per ottenere un token. Questo token viene poi utilizzato per accedere all'API REST. Esistono diversi tipi di flusso OAuth, ma il più comune è il flusso del codice di autorizzazione, in cui l'utente viene autenticato tramite una pagina di accesso all'API e FileMaker riceve un token di accesso.
- Di quali informazioni ho bisogno per collegare FileMaker a un'API REST tramite OAuth?
- Sono necessari l'ID del client, il segreto del client, l'URI di reindirizzamento e gli URL di autorizzazione e token dell'API. Di solito queste informazioni vengono fornite dal fornitore dell'API dopo la registrazione dell'applicazione. FileMaker utilizza questi dati per autenticarsi tramite il processo OAuth.
- Come si autentica FileMaker con OAuth rispetto a un'API REST?
- È necessario iniziare il processo OAuth effettuando una richiesta di autorizzazione tramite FileMaker utilizzando la funzione Inserisci da URL. Una volta ottenuta l'autorizzazione, si riceverà un token di accesso che potrà essere utilizzato in ulteriori richieste API per accedere alle risorse protette.
- Come faccio a salvare il token OAuth in FileMaker per le chiamate API successive?
- Il token ricevuto viene solitamente memorizzato in un campo di FileMaker per poterlo utilizzare per future chiamate API. I token hanno spesso una durata limitata ed è necessario rinnovarli regolarmente richiedendo un nuovo token.
- Cosa succede quando il token OAuth scade?
- Se il token di accesso scade, si riceverà un errore dall'API (ad esempio, il codice di stato HTTP 401 "Non autorizzato"). In questo caso, è necessario utilizzare il token di aggiornamento per ottenere un nuovo token di accesso senza che l'utente debba accedere nuovamente. Il token di aggiornamento viene fornito durante il processo OAuth originale.
- Come si ottiene un token di aggiornamento in FileMaker?
- Quando si passa attraverso il primo flusso OAuth, non solo si riceve un token di accesso, ma anche un token di aggiornamento. Questo token di aggiornamento può essere salvato in FileMaker. Una volta scaduto il token di accesso, è possibile richiedere un nuovo token di accesso utilizzando il token di aggiornamento senza dover autenticare nuovamente l'utente.
- Quali precauzioni di sicurezza è necessario prendere quando si utilizza OAuth in FileMaker?
- Dovete assicurarvi che i dati sensibili come il Client Secret, il Token di accesso e il Token di aggiornamento siano archiviati in modo sicuro. Utilizzate campi crittografati in FileMaker e proteggete il database con i giusti controlli di accesso. Dovete anche assicurarvi di utilizzare HTTPS per il traffico di dati con l'API.
- FileMaker può richiedere automaticamente un nuovo token quando il vecchio scade?
- Sì, è possibile impostare uno script in FileMaker che controlli il codice di stato di una richiesta API. Se viene restituito un errore 401 dovuto a un token scaduto, lo script può richiedere automaticamente un nuovo token con il token di aggiornamento salvato e inviare nuovamente la richiesta.
- Cosa devo fare se l'API REST utilizza OAuth 2.0, ma FileMaker supporta solo l'autenticazione di base?
- Se un'API richiede OAuth 2.0, è necessario integrare completamente il flusso OAuth in FileMaker. L'autenticazione di base non sarà sufficiente. Tuttavia, è possibile creare uno script in FileMaker che automatizzi l'intero processo OAuth (richiesta di autorizzazione, memorizzazione del token, rinnovo del token) e garantisca che tutte le chiamate API siano effettuate con i token appropriati.
Sintesi
FileMaker offre la possibilità di rivolgersi alle API REST e di utilizzare diversi meccanismi di autenticazione, come ad esempio OAuth, Autorizzazione di base e Autenticazione basata su token supporto. Attraverso l'uso di Inserisci da URL e Opzioni cURL è possibile gestire processi di autenticazione complessi e garantire che le soluzioni FileMaker comunichino senza problemi con i sistemi esterni. Non appena il login all'API REST è privo di errori, potete richiamare gli endpoint desiderati della vostra API ed elaborare i dati forniti.
