Als je een API in Portal gebruikt waarvoor tokens (Client IDs en Client Secrets) nodig zijn, wordt in dit artikel uitgelegd hoe je deze genereert.
Houd er rekening mee dat alleen gebruikers met de rollen "owner" en "admin" toegang hebben tot de pagina API Configuration. Het wordt aanbevolen om een specifieke admin-gebruiker aan te maken voor API-interactie. Bij de Shipment Data API kun je bijvoorbeeld het shipment viewer-profiel aanpassen zodat het exact overeenkomt met de gegevens die je wilt retourneren, zonder dat dit invloed heeft op de UI-configuratie van andere gebruikers.
Als je niet bekend bent met de gebruikerstypen en rollen die in nShift Ship worden gebruikt, raden we aan dit artikel te lezen: Inzicht in gebruikerstypen en rollen.
Een Client ID en Client Secret aanmaken
- Log in op nShift Portal met je owner-gebruiker.
- Klik rechtsboven op Settings.
- Kies API Configuration > Clients in het menu aan de linkerkant.
- Klik op de pagina Clients op de knop Add.
- Vul in het dialoogvenster dat wordt geopend de velden Display name en Description in. Kies een naam en beschrijving waarmee je het token later gemakkelijk kunt identificeren. Vink het vakje Enable aan om het token direct in te schakelen. (Je kunt het token op elk moment na het aanmaken in- of uitschakelen).
- Kies de Allowed Scopes, dit zijn de API’s waarvoor je toegang nodig hebt.
- Klik op Save. Je Client Id en Client Secret worden nu gegenereerd en op het scherm weergegeven. Belangrijk: Noteer de tokens, want het Client Secret is niet meer beschikbaar nadat je de pop-up hebt gesloten.
- Klik op Save om het aanmaken van het token te voltooien.
- Het token wordt nu weergegeven op de pagina Clients. Je kunt op elk moment op een token klikken om het te bewerken of verwijderen, of om het in of uit te schakelen. Als je een lange lijst met tokens hebt, kun je bovenaan de filteroptie gebruiken om alleen ingeschakelde of uitgeschakelde tokens weer te geven.
Overzicht van scopes
Deze lijst legt het gebruik van de verschillende scopes uit. Om veiligheidsredenen raden we aan alleen de scopes te kiezen die je nodig hebt. Het is beter om meerdere Client IDs met beperkte scopes aan te maken dan één ID dat meerdere scopes omvat.
-
Public Containers API (public_containers_api) - Nodig om de container-API te gebruiken voor het beheren van containers. Lees meer over de container-API hier. Je hebt deze scope ook nodig als je containers wilt gebruiken in nShift On-premises, lees meer hier.
-
Public COP Cloud Access (public_cop_cloud_access) - Wordt gebruikt voor veilige communicatie tussen On-premises en Portal zodat abonnementen kunnen worden uitgevoerd.
-
ScanApp public Api (public_api_scanapp_consignor) - Nodig om containers te gebruiken in nShift On-premises. Deze scope geeft On-premises toegang om een lijst met beschikbare Action Centers op te halen op basis van de owner die aan de installatie is gekoppeld. Lees meer over containers in On-premises hier.
-
Portal Shipment Data API (public_api_portal_shipment_data) - Nodig wanneer je de Shipment Data API wilt gebruiken om verzendinformatie uit Portal op te halen. Lees meer over de Shipment Data API hier.
- Shipment Server (public_api_shipmentserver) - Deze scope is nodig om Shipment Server API versie 2 te gebruiken. Lees meer hier.
Een toegangstoken verkrijgen
Gebruik je Client ID en Client Secret om een toegangstoken te genereren dat nodig is voor andere aanvragen aan onze API. Dit doe je door een POST-aanvraag te sturen naar het volgende token-endpoint:
https://account.nshiftportal.com/idp/connect/token
Specificeer de Client ID, Client Secret en grant type in de taal en het framework die je bedrijf gebruikt.
Voorbeeld:
POST https://account.nshiftportal.com/idp/connect/token
Cache-Control: no-cache
Host: www.nshiftportal.com
Content-Type: application/x-www-form-urlencoded
client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=client_credentials
Als de aanvraag geldig is en de client correct is geconfigureerd, ontvang je een JSON-respons:
{
"access_token": "some-real-token-data-dskjfhsuijkdhfgjkasjdgfhqoeiefoiknsoidfgvoiltgjvpdrofjmwpkldujrftvoifgkhbnilsakjprotglijkqp2owrlfjkvmowrifgho2qw9ouejifpe9rodtuj3-0porfij9odtujgw0etioyh",
"expires_in": 3600,
"token_type": "Bearer"
}
Verder lezen
Al onze nieuwe API’s ondersteunen een OpenID-oplossing voor verbeterde beveiliging. Raadpleeg voor meer informatie de standaarddocumentatie van OpenId en IdentityServer: