cimt

Integration & Migration

AFAS stapt over op OAuth: wat verandert er in uw Talend-jobs?

AFAS vervangt Classic tokens door OAuth 2.0. Bestaande tokens stoppen 15 februari 2027, de harde deadline is 31 augustus 2027. Wat u in uw Talend-jobs aanpast.

Henk Teurlings ·
#AFAS #OAuth #Talend #data integration #API

AFAS vervangt de Classic tokens van zijn App Connectors door OAuth 2.0. Alle bestaande Classic tokens krijgen in september 2026 een einddatum: 15 februari 2027. Op 31 augustus 2027 stopt de Classic-authenticatie definitief. Elke koppeling die nu met een Classic token op de Profit REST Services praat, ook uw Talend-jobs, moet vóór die datum zijn omgebouwd.

Het raakt elke App Connector die u zelf beheert, dus ook de Talend-jobs die AFAS-data ophalen of wegschrijven.

Waarom AFAS overstapt

Een Classic token is in de praktijk onbeperkt geldig. Wie het token eenmaal heeft, kan er jarenlang mee bij de gekoppelde Get- en UpdateConnectors. Raakt zo’n token buiten de organisatie, dan blijft het lek open tot iemand het opmerkt en intrekt. AFAS zegt zelf dat Classic tokens technisch niet minder veilig zijn; het probleem zit in de manier waarop ze gebruikt worden: lang levend, handmatig beheerd, en vaak gekopieerd naar meerdere plekken.

OAuth 2.0 lost dat op met kortlopende access tokens. Een token is een uur geldig en wordt daarna door de koppeling automatisch opnieuw aangevraagd. Een gelekt token is na maximaal een uur waardeloos. Daarnaast krijgt u met een client id en client secret per koppeling meer grip op wie toegang heeft en op welke connectoren.

Wat er verandert

De App Connector blijft de plek in Profit waar u bepaalt welke Get- en UpdateConnectors een koppeling mag gebruiken. Wat verandert, is de manier waarop de koppeling zich identificeert.

Classic tokenOAuth 2.0
CredentialEén token, gekoppeld aan een gebruikerClient id + client secret per App Connector
GeldigheidPraktisch onbeperktAccess token: 1 uur
Header naar de connectorAuthorization: AfasToken <base64 van het token-XML>Authorization: Bearer <access_token>
Extra stapGeenVooraf een token ophalen bij het token-endpoint
VernieuwenHandmatig, zeldenAutomatisch door de koppeling

Schema: boven roept een Talend-job de AFAS-connector aan met een onbeperkt geldig Classic token; onder haalt de job eerst met client id en secret een access token op (1 uur geldig) en stuurt dat als Bearer-token mee naar de connector.

AFAS ondersteunt twee OAuth-flows. De client credentials flow is bedoeld voor systeem-naar-systeem koppelingen zonder ingelogde gebruiker; dat is de flow voor ETL en dus voor Talend. De authorization code flow is voor toepassingen waarin een eindgebruiker zelf inlogt bij AFAS Online en toestemming geeft. In de client credentials flow geeft AFAS geen refresh tokens uit: na een uur vraagt u met client id en secret gewoon een nieuw access token aan.

Het token-endpoint volgt het patroon van uw omgeving:

POST https://<omgevingsnummer>.rest.afas.online/profitrestservices/oauth/token

De exacte parameters (grant type, client id, client secret) staan in de technische documentatie van AFAS. Het antwoord bevat een access_token dat u in de Authorization-header van elke connector-aanroep meestuurt.

Twee praktische punten uit de AFAS-documentatie. Het client secret is na het genereren niet meer op te vragen, alleen opnieuw te genereren (waarmee het oude secret ongeldig wordt). En vanaf Profit 9 kunt u in een bestaande App Connector de authenticatiemethode wijzigen van Classic token naar Hybrid of OAuth, zonder een nieuwe connector aan te maken; gekoppelde connectoren en IP-restricties blijven behouden. Hybrid accepteert beide methoden tegelijk en is daarmee de natuurlijke overgangsvorm.

De tijdlijn

  • September 2026: AFAS geeft alle bestaande Classic tokens een einddatum.
  • 15 februari 2027: bestaande Classic tokens stoppen met werken. Tokens die u daarna nog aanmaakt, werken uiterlijk tot 31 augustus 2027.
  • 31 augustus 2027: einde van de Classic-authenticatie. App Connectors die dan nog op een Classic token draaien, werken niet meer.

Standaardkoppelingen die AFAS zelf levert (Payment Service, Remote Tool en dergelijke) migreert AFAS zelf. Actie is nodig voor elke App Connector van het type “Onderhoud door klant” met authenticatie Classic of Hybrid. Talend-jobs vallen daar in de regel onder.

Wat dit betekent voor uw Talend-jobs

Een Talend-job die AFAS aanroept, doet dat meestal met een tRESTClient of tHttpRequest naar https://<omgevingsnummer>.rest.afas.online/profitrestservices/connectors/<connectornaam>, met het Classic token als vaste header, vaak uit een context-variabele. Dat patroon moet op vijf punten worden aangepast.

1. Inventariseer. Zoek alle jobs, joblets en contextgroepen waarin een AfasToken voorkomt. In de praktijk staat hetzelfde token in meerdere jobs, contextbestanden en soms in de Talend Management Console (of TAC). Leg per job vast welke Get- en UpdateConnectors hij gebruikt; die lijst heeft u nodig bij het inrichten van de OAuth App Connector.

2. Voeg een tokenstap toe. Vóór de eerste connector-aanroep haalt de job een access token op: een tRESTClient (POST) naar het token-endpoint met client id en client secret, een tExtractJSONFields die het access_token uit het antwoord haalt, en een tSetGlobalVar die het in de globalMap zet. Bouw dit als joblet, zodat elke AFAS-job dezelfde tokenstap hergebruikt.

3. Pas de header aan. De connector-aanroep stuurt niet langer AfasToken <base64> maar Bearer <access_token>. In tRESTClient kunt u de authenticatie op OAuth2 Bearer zetten en het token uit de globalMap meegeven; in tHttpRequest zet u de Authorization-header zelf op.

4. Houd rekening met de geldigheid van een uur. Voor de meeste batch-jobs is één token per run voldoende. Jobs die langer dan een uur lopen of die duizenden aanroepen in een loop doen, hebben een controle nodig: sla het tijdstip van uitgifte op en vraag een nieuw token aan zodra het bijna verloopt, of vang een HTTP 401 af en probeer één keer opnieuw met een vers token.

5. Beheer de secrets als secrets. Client id en client secret horen niet als platte tekst in een context-bestand of in de job zelf. Gebruik versleutelde contextparameters, de Talend Management Console (of TAC) of de secret store van uw platform. Roteer het secret als u vermoedt dat het gelekt is; oude tokens vervallen dan binnen een uur vanzelf.

Test de omgebouwde job tegen een App Connector die op Hybrid staat. De bestaande productiekoppeling blijft dan werken op het Classic token, terwijl de nieuwe versie met OAuth dezelfde connectoren aanspreekt. Zijn beide jobs in de testomgeving gelijkwaardig, dan promoot u de OAuth-variant en verwijdert u het Classic token uit de App Connector.

Stappenplan tot augustus 2027

  1. Inventariseer alle AFAS-koppelingen en de Talend-jobs erachter (september tot oktober 2026).
  2. Zet de App Connectors in Profit op Hybrid en genereer per koppeling een client id en secret.
  3. Bouw de tokenstap als joblet en pas de jobs aan.
  4. Test in Hybrid-modus naast de bestaande koppeling; vergelijk de output.
  5. Promoot naar productie ruim vóór 15 februari 2027 en verwijder de Classic tokens.
  6. Zet de App Connectors na de laatste migratie op OAuth-only.

Wacht niet op de laatste deadline. De datum van 15 februari 2027 raakt elk bestaand token, en de aanpassing vraagt afstemming tussen applicatiebeheer (Profit) en de ETL-ontwikkelaars (Talend). Wie in het najaar van 2026 begint, heeft ruimte om te testen zonder productiedruk.

Hoe cimt kan ondersteunen

cimt werkt sinds 2009 met Talend (destijds als Talend Platinum Partner, nu als Qlik Elite Partner), bouwt en beheert Talend-omgevingen en heeft ervaring met koppelingen op AFAS Profit. Voor de overstap naar OAuth kunnen wij:

  • de bestaande AFAS-koppelingen en Talend-jobs inventariseren en de impact per job vaststellen;
  • de App Connectors in Profit samen met uw applicatiebeheerder op Hybrid en later OAuth inrichten;
  • de tokenstap als herbruikbare joblet bouwen en de jobs aanpassen, inclusief secret-beheer en foutafhandeling;
  • de omgebouwde jobs testen tegen de Hybrid-connector en de overgang naar productie begeleiden.

Voor klanten met een managed-services-contract nemen we de migratie mee in het reguliere beheer. Voor anderen is het een afgebakende opdracht binnen onze data-integratiepraktijk.

Wilt u weten wat de overstap voor uw Talend-jobs betekent? Neem contact op, dan kijken we samen naar uw AFAS-koppelingen en plannen we de aanpassing in vóór de eerste deadline.

Bronnen

Over de auteur

Henk Teurlings

Henk Teurlings

Solution Architect

Stel een vraag →

Veelgestelde vragen

Over AFAS

Moet ik voor OAuth een nieuwe App Connector aanmaken in AFAS Profit?

Vanaf Profit 9 niet meer. U wijzigt dan in de bestaande App Connector de authenticatiemethode van Classic token naar Hybrid of OAuth; gekoppelde connectoren en IP-restricties blijven staan. Op oudere Profit-versies maakt u een nieuwe App Connector op basis van OAuth aan en koppelt u de Get- en UpdateConnectors opnieuw.

Wat is een Hybrid App Connector?

Een App Connector die zowel Classic tokens als OAuth accepteert. Handig als overgangsvorm: u laat de bestaande koppeling doorlopen terwijl u de OAuth-variant test. Hybrid blijft na 31 augustus 2027 werken, maar de Classic tokens erin niet; die moet u dus alsnog vervangen.

Hoe lang is een AFAS OAuth access token geldig?

Eén uur. Daarna vraagt uw koppeling met client id en client secret een nieuw token aan. In de client credentials flow geeft AFAS geen refresh tokens uit.

Stopt mijn koppeling echt op 15 februari 2027?

Ja, als die op een bestaand Classic token draait. AFAS geeft in september 2026 alle bestaande Classic tokens een einddatum van 15 februari 2027. Tokens die u daarna nog aanmaakt, blijven tot uiterlijk 31 augustus 2027 werken.

Kan cimt de aanpassing van onze Talend-jobs uitvoeren?

Ja. We inventariseren de AFAS-koppelingen, richten de App Connector met OAuth in, passen de Talend-jobs aan (tokenstap, headers, secrets) en testen ze tegen de Hybrid-connector voordat de Classic tokens verlopen.

Verder lezen

Klaar om dit toe te passen?

Plan een gesprek met cimt en bekijk hoe deze inzichten passen bij uw datafundament.