Koppelingen overslaan

FileMaker-login bij een REST API met OAuth

FileMaker tips en instructies

FileMaker-login bij een REST API met oAuth

Let op! Dit voorbeeld is een concept dat niet gegarandeerd precies zo werkt als afgebeeld. Het artikel wordt niet regelmatig bijgewerkt en kan daarom verouderd zijn wat betreft softwareversies.

We bieden geen ondersteuning voor onze gepubliceerde voorbeelden.

In Duitsland worden REST API's in veel sectoren gebruikt om applicaties en systemen met elkaar te verbinden. Ze zijn vooral wijdverspreid in e-commerce, waar platformen zoals Shopware, Magento en WooCommerce API's gebruiken om producten, bestellingen en klantinformatie te integreren met ERP-systemen of betaaldiensten zoals PayPal en Klarna. API's worden ook veel gebruikt in de financiële sector dankzij open banking en PSD2-richtlijnen, waardoor banken zoals N26 en Deutsche Bank gegevens veilig kunnen overdragen aan externe providers. In de logistiek ondersteunen API's dienstverleners zoals DHL en Hermes met het traceren van zendingen en het automatiseren van verzendprocessen. API's worden ook gebruikt in de gezondheidszorg om patiëntgegevens te beheren en in de overheid om burgerdiensten te digitaliseren.

De verbinding met een REST API in FileMaker is een veel voorkomende use case voor het integreren van gegevens van externe systemen in FileMaker databases of voor het verzenden van gegevens naar deze systemen. Authenticatie voor deze REST API's vindt vaak plaats via OAuth of Verificatie op basis van tokens. Hieronder vind je gedetailleerde instructies over hoe dit werkt.

 

FileMaker ERP met geïntegreerde
REST API-interface

Meer informatie
Professionele ERP-software

1. Basisprincipes van de REST API-verbinding

Voordat we beginnen met de authenticatie, moeten we de REST API aanroepen via de FileMaker-functie Invoegen vanaf URL die wordt gebruikt in een script. REST API's gebruiken meestal HTTP-methoden hoe:

  • GETGegevens ophalen uit de API.
  • POSTGegevens naar de API verzenden.
  • PUTWerk bestaande gegevens bij.
  • DELETEGegevens verwijderen.

Het belangrijkste punt is echter de Registratie op de API om deze methoden te kunnen gebruiken.

2. HTTP-basis-Auth

Een van de eenvoudigste vormen van authenticatie is HTTP-basis-Auth. De gebruikersnaam en het wachtwoord worden ingevoerd in het Autorisatie-header van het HTTP-verzoek.

Voorbeeld:

 
Stel variabele [ $username ; Waarde: "your_username" ] in.
Variabele instellen [$password ; Waarde: "uw_wachtwoord" ]
Variabele instellen [$url ; Waarde}, "https://api.example.com/resource" ]

# Combineer gebruikersnaam en wachtwoord en base64-encodeer vervolgens
Variabele instellen [ $encodedAuth ; Waarde: Base64Encode ( $username & ":" & $password ) ]

# cURL-opties definiëren
Variabele instellen [$cURLOptions ; Waarde:
"--header \"Autorisatie: Basis " & $encodedAuth & "\"" ]

# API-query uitvoeren
Invoegen vanaf URL [ Selectie ; Dialoog: Uit ; Doel: $response ; URL: $url ; cURL opties: $cURLOptions ]

In dit voorbeeld worden de gebruikersnaam en het wachtwoord geconverteerd naar een Base64-gecodeerde string en opgeslagen als een Machtigingskop verzonden.

3. OAuth 2.0 verificatie

OAuth 2.0 is een gestandaardiseerd raamwerk dat een Toegang op basis van een token naar een API. Het is beschikbaar in verschillende stromen:

a) Klantgegevensstroom

Deze flow wordt gebruikt als de applicatie rechtstreeks met de API communiceert en er geen interactie met de gebruiker nodig is. Hier wordt een Toegangssleutel aangevraagd door de API.

  1. Toegangscode aanvragenOm een toegangstoken te verkrijgen, moet een POST-verzoek wordt naar het tokeneindpunt van de API gestuurd.
 

Stel variabele [ $client_id ; Waarde: "your_client_id" ] in.
Variabele instellen [$client_secret ; Waarde: "your_client_secret" ]
Variabele instellen [$url ; Waarde}, "https://auth.example.com/oauth/token" ]
# cURL-opties definiëren
Variabele instellen [ $cURLOptions ; Waarde:
"--data-urlencode \"client_id=" & $client_id & "\" " &
"--data-urlencode \"client_secret=" & $client_secret & "\" " &
--data-urlencode ""grant_type=client_credentials"" ]
# API-query uitvoeren
Invoegen vanaf URL [Selectie ; Dialoog: Uit ; Doel: $response ; URL: $url ; cURL opties: $cURLOptions ]
Extract # token uit de JSON
Variabele instellen [$accessToken ; Waarde: JSONGetElement ( $response ; "access_token" ) ]

  1. API-verzoek met het toegangstokenZodra het token is opgehaald, kan het worden gebruikt voor authenticatie met de API.

Variabele instellen [$api_url ; Waarde}, "https://api.example.com/protected_resource" ]
# Definieer cURL opties met Bearer token
Variabele instellen [$cURLOptions ; Waarde:
"--header \"Autorisatie: Drager " & $accessToken & "\"" ]
API-query uitvoeren
Invoegen vanaf URL [Selectie Dialoog: Uit ; Doel: $api_response ; URL: $api_url ; cURL opties: $cURLOptions ]

b) Autorisatie Code Stroom

Deze flow wordt gebruikt wanneer de API de gebruiker vraagt om zich te authenticeren en toegang te verlenen tot de applicatie. De flow bestaat meestal uit de volgende stappen:

  1. Gebruikers omleiden naar de aanmeldingspagina van de APIEr wordt een browservenster geopend waarin de gebruiker zijn toegangsgegevens invoert en de applicatie autoriseert.
  2. Autorisatiecode ontvangenNa succesvolle registratie wordt een Machtigingscode wordt naar een omleidings-URL gestuurd.
  3. Autorisatiecode voor toegangstoken uitwisselenDe autorisatiecode wordt gebruikt om een toegangstoken aan te vragen.
  4. API-verzoek met het toegangstokenZoals in de Klantgegevensstroom het toegangstoken wordt ingevoerd in de Autorisatie-header van het API-verzoek.

4. Token-gebaseerde verificatie (API-sleutels)

Met de Verificatie op basis van tokens vaak een statische API-sleutel die wordt gegenereerd door de API en wordt gebruikt in de Autorisatie-header of als een URL-parameter voor de API.

Voorbeeld:

Variabele instellen [$api_key ; Waarde: "your_api_key" ]
Variabele instellen [$url ; Waarde: "https://api.example.com/resource" ]# Definieer cURL opties
Variabele instellen [$cURLOptions ; Waarde:
"--header \"Autorisatie: Bearer" & $api_key & "\"" # API-aanroep uitvoeren
Invoegen vanaf URL [Selectie ; Dialoog: Uit ; Bestemming: $response ; URL: $url ; cURL-opties: $cURLOptions ]

Als alternatief kan de API-sleutel worden verzonden als URL-parameters:

Variabele instellen [$url ; Waarde}, "https://api.example.com/resource?api_key=your_api_key" ]
API-query uitvoeren
Invoegen vanaf URL [Selectie ; Dialoog: Uit ; Bestemming: $response ; URL: $url ]

5. Beheer van tokens

In veel API's is de Toegangssleutel na een bepaalde tijd. Hier wordt een Vernieuw Token kan worden gebruikt om een nieuw toegangstoken te krijgen zonder dat de gebruiker zich opnieuw hoeft te authenticeren.

Variabele instellen [$refresh_token ; Waarde: "your_refresh_token". ]
Variabele instellen [$url ; Waarde}, "https://auth.example.com/oauth/token" ]
# Definieer cURL-opties voor vernieuwen token
Variabele instellen [$cURLOptions ; Waarde:
"--data-urlencode ""refresh_token=" & $refresh_token & """ " &
"--data-urlencode \"client_id=" & $client_id & "\" " &
"--data-urlencode \"client_secret=" & $client_secret & "\" " &
--data-urlencode ""grant_type=refresh_token"" ]
# Vernieuwen token uitvoeren
Invoegen vanaf URL [Selectie ; Dialoog: Uit ; Bestemming: $response ; URL: $url ; cURL-opties: $cURLOptions ]
# Nieuwe toegangstoken uit het JSON-antwoord halen
Variabele instellen [$new_accessToken ; WaardeJSONGetElement ( $response ; "access_token" ) ]

gFM-Bedrijf Open Source FileMaker Basis-ERP

De software voor de spoedcursus

Gratis downloaden
Open source ERP gebaseerd op Claris FileMaker

Inloggen met OAuth als aangepaste FileMaker-functie

Om Aangepaste FileMaker-functie die het inloggen op een REST API uitvoert en verschillende authenticatiemethoden ondersteunt, zoals Basic Auth, OAuth2 of API-sleutels via parameters, kunnen we de flexibiliteit van FileMaker benutten. De functie moet dynamisch alle relevante parameters accepteren en het juiste formaat genereren, afhankelijk van het authenticatietype. De functie vereist de gratis FileMaker BaseElements-pluginomdat FileMaker de functie Invoegen vanaf URL niet ondersteund in een aparte functie.

Basisidee:

De aangepaste functie moet worden aangestuurd via parameters die de API URL, het authenticatietype en de benodigde gegevens zoals gebruikersnaam, wachtwoord, client-ID, clientgeheim of token bevatten. De functie zal dan de authenticatie uitvoeren en de aanmeldingsgegevens in de juiste vorm naar de API sturen.

Structuur van de functie:

Parameters:

  • apiURLDe URL van de REST API.
  • authTypeHet type authenticatie (bijv. "Basic", "OAuth2", "API-Key").
  • gebruikersnaamGebruikersnaam voor Basic Auth.
  • wachtwoordWachtwoord voor basisautorisatie.
  • clientIDClient-ID voor OAuth2.
  • clientSecretClientgeheim voor OAuth2.
  • tokenAPI-token of OAuth2-toegangstoken.
  • extraParamsAanvullende parameters voor het verzoek (bijv. subsidie_type voor OAuth2).

Voorbeeld van de aangepaste functie:

/*
Functie naam: API_Login
Parameters:
apiURL (Tekst) - De URL van de API
authType (Tekst) - Het authenticatietype (Basic, OAuth2, API-sleutel)
user (tekst) - gebruikersnaam (voor Basic Auth of OAuth2)
wachtwoord (tekst) - Wachtwoord (voor Basic Auth of OAuth2)
clientID (tekst) - Client-ID (voor OAuth2)
clientSecret (Tekst) - Clientgeheim (voor OAuth2)
token (tekst) - Toegangstoken (voor API-sleutel of OAuth2)
extraParams (Tekst) - Extra parameters (voor OAuth2)
Retourneert:
Antwoord van de API of foutbericht
*/

SetVar ( [
//

Configuratievariabelen
url = apiURL;
authMethod = authType;
basicAuthHeader = "Autorisatie: Basis " & Base64Encode(user & ":" & wachtwoord);
tokenAuthHeader = "Autorisatie: Drager " & token;

// Gegevens voorbereiden voor OAuth2 Client Credentials Stroom
oauthData = "client_id=" & clientID & "&client_secret=" & clientSecret & "&grant_type=client_credentials";

// Stel de cURL-opties in afhankelijk van het authenticatietype
cURL_Options =
Als(
   authMethod = "Basic"; basicAuthHeader;
   authMethod = "OAuth2"; "";
   authMethod = "API-Key"; tokenAuthHeader;
   ""
);

// Verzoek verzenden afhankelijk van authenticatiemethode
resultaat = als(
   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); "Ongeldige Auth Methode" ) ];

// Stuur het resultaat van de API query terug
resultaat
)

Functionaliteit:

  1. De functie controleert welk authenticatietype wordt gebruikt (Basis, OAuth2, API-sleutel).
  2. Afhankelijk van het authenticatietype zijn er verschillende cURL opties gegenereerd:
    • Basis AuthGebruikersnaam en wachtwoord worden geconverteerd naar een Base64-gecodeerde tekenreeks en opgeslagen in de Autorisatie-header wordt verzonden.
    • OAuth2 Client Credentials StroomClient ID en clientgeheim worden verzonden in de body van het verzoek om een toegangstoken te verkrijgen.
    • API-sleutel of OAuth2-toegangstokenHet token wordt direct herkend als Drager-token wordt verzonden in de header.
  3. De aangepaste functie gebruikt HTTP Get en Put functies van de FileMaker BaseElements plugin voor de serververbinding, omdat de Invoegen vanaf URL-functie wordt niet ondersteund door FileMaker in zijn eigen functies, maar alleen in scripts.

Voorbeeld oproep:

API Inloggen(
"https://api.example.com/login",
"Basis",
"mijngebruikersnaam",
"mijnWachtwoord",
"",
"",
""
)

Uitbreidingsopties:

  • FoutafhandelingDe functie kan worden uitgebreid om foutcodes van de API te herkennen en overeenkomstige berichten te retourneren.
  • Vernieuwing van tokenAls een toegangstoken verloopt, kan de functie worden uitgebreid zodat deze automatisch om een nieuw token vraagt.
  • Ondersteuning voor meer OAuth2-stromenDe code kan worden uitgebreid zodat Autorisatie Code Stroom en Wachtwoord toekennen worden ondersteund.

Deze aangepaste functie biedt een flexibele manier om verschillende authenticatiemechanismen te integreren met REST API's in FileMaker en kan eenvoudig worden aangepast om aan specifieke vereisten te voldoen.

Vier FileMaker ERP-platforms voor geoptimaliseerde bedrijfsprocessen te koop en te huur.

Informatie aanvragen
Professionele ERP-software

Veelgestelde vragen over FileMaker en REST-API met oAuth

  • Wat is OAuth en waarom wordt het gebruikt voor het aanmelden bij een REST API?
    • OAuth is een open standaardprotocol dat wordt gebruikt voor de veilige autorisatie van API-toegang. Het stelt toepassingen zoals FileMaker in staat om toegang te krijgen tot beschermde bronnen van een API zonder dat gebruikers hun toegangsgegevens rechtstreeks hoeven in te voeren. OAuth biedt een veilige manier om te autoriseren zonder het delen van gevoelige referenties.
  • Hoe werkt de OAuth flow bij het inloggen op een REST API?
    • De OAuth flow begint meestal met FileMaker die een verzoek naar een autorisatieserver stuurt om een token te verkrijgen. Dit token wordt vervolgens gebruikt om toegang te krijgen tot de REST API. Er zijn verschillende soorten OAuth flows, maar de meest voorkomende is de Authorisation Code Flow, waarbij de gebruiker wordt geverifieerd via een aanmeldingspagina van de API en FileMaker vervolgens een toegangstoken ontvangt.
  • Welke informatie heb ik nodig om FileMaker via OAuth met een REST API te verbinden?
    • Je hebt de client-ID, het clientgeheim, de redirect URI en de autorisatie- en token-URL's van de API nodig. U ontvangt deze gegevens meestal van de API-aanbieder nadat u een toepassing hebt geregistreerd. FileMaker gebruikt deze gegevens om zichzelf te authenticeren via het OAuth-proces.
  • Hoe authenticeer ik FileMaker met OAuth tegen een REST API?
    • U moet eerst het OAuth-proces initialiseren door via FileMaker een autorisatieverzoek in te dienen met de functie Invoegen vanaf URL. Na succesvolle autorisatie ontvangt u een toegangstoken dat u in verdere API-verzoeken kunt gebruiken om toegang te krijgen tot beschermde bronnen.
  • Hoe sla ik het OAuth token op in FileMaker voor latere API-aanroepen?
    • Het ontvangen token wordt meestal opgeslagen in een veld in FileMaker om het te gebruiken voor toekomstige API-aanroepen. Tokens hebben vaak een beperkte levensduur en u moet ze regelmatig vernieuwen door een nieuw token aan te vragen.
  • Wat gebeurt er als het OAuth token verloopt?
    • Als het toegangstoken verloopt, ontvang je een foutmelding van de API (bijvoorbeeld HTTP-statuscode 401 "Niet geautoriseerd"). In dit geval moet je het refresh token gebruiken om een nieuw toegangstoken te verkrijgen zonder dat de gebruiker opnieuw hoeft in te loggen. Het refresh token wordt verstrekt tijdens het oorspronkelijke OAuth-proces.
  • Hoe krijg ik een verversingstoken in FileMaker?
    • Wanneer u de eerste OAuth flow doorloopt, ontvangt u niet alleen een toegangstoken, maar ook een verversingstoken. Dit refresh token kan worden opgeslagen in FileMaker. Zodra het toegangstoken verloopt, kan een nieuw toegangstoken worden aangevraagd door het refresh token te gebruiken zonder de gebruiker opnieuw te authenticeren.
  • Welke veiligheidsmaatregelen moet ik nemen bij het gebruik van OAuth in FileMaker?
    • Je moet ervoor zorgen dat gevoelige gegevens zoals Client Secret, Access Token en Refresh Token veilig worden opgeslagen. Gebruik gecodeerde velden in FileMaker en beveilig de database met de juiste toegangscontroles. Zorg er ook voor dat u HTTPS gebruikt voor het gegevensverkeer met de API.
  • Kan FileMaker automatisch een nieuw token aanvragen als het oude verloopt?
    • Ja, u kunt in FileMaker een script instellen dat de statuscode van een API-verzoek controleert. Als er een 401-fout wordt geretourneerd vanwege een verlopen token, kan het script automatisch een nieuw token aanvragen met het opgeslagen vernieuwde token en het verzoek opnieuw verzenden.
  • Wat moet ik doen als de REST API OAuth 2.0 gebruikt, maar FileMaker alleen basisverificatie ondersteunt?
    • Als een API OAuth 2.0 vereist, moet u de OAuth-flow volledig in FileMaker integreren. Basisauthenticatie is niet voldoende. U kunt echter een script in FileMaker maken dat het volledige OAuth-proces automatiseert (autorisatieverzoek, tokenopslag, tokenvernieuwing) en ervoor zorgt dat alle API-aanroepen met de juiste tokens worden gedaan.

Samenvatting

FileMaker biedt de mogelijkheid om REST API's aan te spreken en verschillende authenticatiemechanismen te gebruiken, zoals OAuthBasis Auth en Verificatie op basis van tokens ondersteuning. Door het gebruik van Invoegen vanaf URL en cURL opties kunt u complexe authenticatieprocessen afhandelen en ervoor zorgen dat uw FileMaker-oplossingen naadloos communiceren met externe systemen. Zodra de aanmelding bij de REST API foutloos is, kunt u de gewenste eindpunten van uw API aanroepen en de aangeleverde gegevens verwerken.

Deel deze pagina:

ERP-software zo flexibel als uw bedrijf.
We geven je graag advies.

Aanpasbare ERP-software voor Mac, Windows en iOS.

U bevindt zich hier: FileMaker aanmelden bij een REST API met OAuth