Ga naar inhoud

Authenticatie

Restorm heeft geen keuzelijst “authenticatietype”. Het heeft iets algemeners: het authenticatieverzoek, een volwaardig verzoek dat als taak heeft headers voor andere verzoeken te produceren.

Het voordeel: elk schema is te modelleren, ook de schema’s waar geen enkele keuzelijst in voorziet — een uitwisseling in twee stappen, een ondertekend token, een eigen API. Het nadeel: u moet het één keer uitschrijven.

Rechtsklik op een omgevingsmapToevoegen ▸ HTTP-authenticatieverzoek.

Configureer de aanroep eerst zoals elk ander HTTP-verzoek: methode, URL, headers, body. Open daarna het tabblad Configuratie, waar de drie instellingen staan die specifiek voor authenticatie zijn.

Het tabblad Configuratie van een authenticatieverzoek, met de drie secties: de geproduceerde headers, het verloop in seconden en de authenticatiefoutcodes

De lijst met headers die deze route zal injecteren in elk verzoek dat ernaar verwijst. Elke waarde is een expressie die wordt geëvalueerd op de body van de respons van het authenticatieverzoek.

HeaderWaarde
Authorization{{token_type}} {{access_token}}

Een expressie, ook geëvalueerd op de body van de respons, die de geldigheidsduur in seconden geeft — doorgaans {{expires_in}}. Laat u die leeg, dan verloopt het token nooit vanzelf.

De HTTP-statussen die, wanneer een verzoek dat deze route gebruikt ze ontvangt, leiden tot een vernieuwing van het token en daarna een automatische nieuwe poging. Standaard: 401 en 403.

Een authenticatieverzoek is het element dat u in de boom aanmaakt. Een authenticatieroute is datzelfde element, gezien vanuit een ander verzoek, in de kiezer die het eraan koppelt. Beide termen verwijzen naar dezelfde entiteit, op twee plekken in de interface.

Op het tabblad van het verzoek staat in de smartbar een kiezer Authenticatieroute met de routes van de omgevingsmap. Het standaardlabel is Geen authenticatie.

Zodra de route is gekoppeld, worden de geproduceerde headers bij elke verzending geïnjecteerd, wordt het token gecachet tot het verloopt, en leidt een 401 tot een vernieuwing die u niet merkt.

Verzoek: POST https://auth.exemple.test/oauth/token, body x-www-form-urlencoded met grant_type=client_credentials, client_id={{clientId}}, client_secret={{clientSecret}} (waarbij het geheim een waarde van het type Geheim is).

Geproduceerde header: Authorization = {{token_type}} {{access_token}}. Verloop: {{expires_in}}.

Er is geen verzoek nodig als u de inloggegevens al hebt: zet de header simpelweg op het verzoek (of op de map):

Authorization = Basic {{base64Encode (append (append user ":") password)}}

Een header of een queryparameter is genoeg: X-API-Key = {{apiKey}}, waarbij de sleutel een variabele van het type Geheim is.

Maak een scenario: eerste aanroep, de tussencode eruit halen, tweede aanroep, en daarna Variabele instellen om het token in de runvariabelen te zetten. De volgende verzoeken van het scenario lezen het met {{jeton}}.

Bij de import van een specificatie worden de gedeclareerde beveiligingsschema’s omgezet in voorgeschakelde headers of parameters, met een omgevingsvariabele die voor u wordt aangemaakt:

Schema in de specificatieWat Restorm neerzet
apiKey (header of query)Een paar dat naar het schema is genoemd, met waarde {{<schema>}}
http / basicAuthorization: Basic {{<schema>_credentials}}
http / bearer, oauth2, openIdConnectAuthorization: Bearer {{<schema>_token}}

U hoeft alleen nog de variabele in te vullen, of haar te vervangen door een authenticatieroute als u de automatische vernieuwing wilt.

Sommige protocollen werken niet met HTTP-headers. Hun inloggegevens zijn velden van het verzoek zelf:

ProtocolVelden
MQTTusername, password, client-ID
AMQPusername, password, vhost
Redispassword
KafkaSASL-mechanisme (plain, scram-sha-256, scram-sha-512), gebruikersnaam, wachtwoord, TLS
STOMPDe headers login en passcode van de CONNECT
gRPCMetadata van de aanroep

Elk van deze wachtwoorden accepteert een waarde van het type Geheim.