Configureer en gebruik de aangepaste OAuth 2-toepassingen van uw organisatie met PKCE-stroom
PKCE is een veilige autorisatiestroom die goed werkt bij dynamisch vernieuwende toepassingen zoals mobiele apps, maar waardevol is voor alle OAuth2-clients. In plaats van een statisch clientgeheim gebruikt PKCE een dynamisch gegenereerde tekenreeks, waardoor het risico van een gelekt clientgeheim wordt verwijderd.
PKCE-overzicht
Een PKCE-stroom heeft de volgende stappen. De stappen in deze sectie worden alleen ter informatie weergegeven. Zie andere secties in dit artikel voor informatie over het uitvoeren van deze procedures.
-
De client maakt de
code_challengedoor decode_verifierusingS256-codering te transformeren. -
De client stuurt de browser samen met de gegenereerde
code_challengenaar de aanmeldingspagina van OAuth2. U moet uw app (Client) registreren zodat OAuth2 de autorisatieaanvraag kan accepteren. Na registratie kan uw toepassing de browser omleiden naar OAuth2. -
De OAuth2 Server van de Vergunning leidt de authentificatieherinnering aan de Gebruiker opnieuw.
-
De gebruiker verklaart zich gebruikend één van de gevormde login opties voor authentiek, en kan een toestemmingspagina zien die van de toestemmingen OAuth2 aan de toepassing een lijst maakt.
-
OAuth2 leidt terug naar uw toepassing met
authorization code. -
Uw toepassing verzendt deze code samen met de
code_verifiernaar OAuth2. -
OAuth2 Authorization Server transformeert
code_verifiergebruikendcode_challenge_methodvan het aanvankelijke vergunningsverzoek, en controleert het resultaat tegencode_challenge. Als de waarde van beide tekenreeksen overeenkomt, heeft de server gecontroleerd of de aanvragen afkomstig zijn van dezelfde client en geeft deze eenaccess tokenuit. -
OAuth2 retourneert de
access tokenen optioneel eenrefresh token. -
Uw toepassing kan deze tokens nu gebruiken om de resourceserver, zoals een API, namens de gebruiker aan te roepen.
-
De bronserver valideert het token voordat wordt gereageerd op het verzoek.
Uw toepassing configureren
Voordat u autorisatie kunt implementeren, moet u uw app registreren in OAuth2 door een app-integratie te maken vanuit Workfront.
Voor instructies bij het creëren van de toepassing OAuth2, zie een OAuth2 enig-pagina Webtoepassing gebruikend PKCE in creëren toepassingen OAuth2 voor de integratie van Workfront
Proefsleutel maken voor Codeuitwisseling
Net als bij de standaardstroom van de machtigingscode, begint de app met het doorsturen van de browser van de gebruiker naar het /authorize -eindpunt van de machtigingsserver. In deze instantie moet u echter ook een code-uitdaging doorgeven.
Uw eerste stap is het produceren van een code verificateur en uitdaging.
U moet code toevoegen in uw clienttoepassing om de code-verificateur en de code-uitdaging te maken.
De PKCE-generatorcode maakt uitvoer die vergelijkbaar is met het volgende:
| code language-none |
|---|
|
Uw app slaat de code_verifier for later op en verzendt de code_challenge samen met de autorisatieaanvraag naar de URL /authorize van de machtigingsserver.
Aanvragen van een machtigingscode
Als u de standaard Server van de Vergunning van de Douane gebruikt, dan zou uw verzoek URL aan het volgende gelijkaardig zijn:
| code language-none |
|---|
|
Maak een notitie van de parameters die worden doorgegeven:
-
client_idkomt overeen met de client-id van de OAuth2-toepassing die u in de toepassing hebt gemaakt tijdens het configureren van de toepassing.Zie Een OAuth2-webtoepassing van één pagina maken met PKCE in OAuth2-toepassingen maken voor Workfront-integratie voor instructies.
-
response_typeiscodeomdat de toepassing het subsidietype voor machtigingscode gebruikt. -
redirect_uriis de callback plaats waaraan de gebruikersagent samen metcodewordt geleid. Dit moet één van redirect URls aanpassen die u specificeerde toen u uw toepassing OAuth2 creeerde. -
code_challenge_methodis de knoeiboelmethode die wordt gebruikt om de uitdaging te produceren, die altijdS256voor Workfront Oauth2 toepassingen is die PKCE gebruiken. -
code_challengeis de code die voor PKCE wordt gebruikt.
De code voor tokens uitwisselen
Als u de machtigingscode voor een toegangstoken wilt uitwisselen, geeft u deze samen met /token door aan het eindpunt van de machtigingsserver code_verifier .
| code language-none |
|---|
|
Maak een notitie van de parameters die worden doorgegeven:
-
grant_typeisauthorization_code, omdat de toepassing het subsidietype voor machtigingscode gebruikt. -
redirect_urimoet overeenkomen met de URI die is gebruikt om de machtigingscode op te halen. -
codeis de vergunningscode die u van het /authorize eindpunt ontving. -
code_verifieris de PKCE codecontroleur die uw app in wordt geproduceerd creeert de Sleutel van het Bewijs voor de Uitwisseling van de Code . -
client_ididentificeert uw klant en moet overeenkomen met de waarde die vooraf is geregistreerd in OAuth2.
Als de code nog geldig is en de verificateur van de code aanpast, ontvangt uw toepassing een toegangstoken.
| code language-none |
|---|
|
Het toegangstoken valideren
Wanneer uw toepassing een verzoek met een toegangstoken overgaat, moet de middelserver het bevestigen.
U kunt uw toegangstoken met een API vraag bevestigen gelijkend op het volgende:
| code language-none |
|---|
|
Een vernieuwingstoken aanvragen
Als u een vernieuwingstoken wilt aanvragen, kunt u een POST-aanroep naar de API uitvoeren, vergelijkbaar met het volgende:
| code language-none |
|---|
|