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_challenge
door decode_verifier
usingS256
-codering te transformeren. -
De client stuurt de browser samen met de gegenereerde
code_challenge
naar 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_verifier
naar OAuth2. -
OAuth2 Authorization Server transformeert
code_verifier
gebruikendcode_challenge_method
van 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 token
uit. -
OAuth2 retourneert de
access token
en 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 PKCEin 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_id
komt 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_type
iscode
omdat de toepassing het subsidietype voor machtigingscode gebruikt. -
redirect_uri
is de callback plaats waaraan de gebruikersagent samen metcode
wordt geleid. Dit moet één van redirect URls aanpassen die u specificeerde toen u uw toepassing OAuth2 creeerde. -
code_challenge_method
is de knoeiboelmethode die wordt gebruikt om de uitdaging te produceren, die altijdS256
voor Workfront Oauth2 toepassingen is die PKCE gebruiken. -
code_challenge
is 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 code_verifier
door aan het eindpunt van de machtigingsserver /token
.
code language-none |
---|
|
Maak een notitie van de parameters die worden doorgegeven:
-
grant_type
isauthorization_code
, omdat de toepassing het subsidietype voor machtigingscode gebruikt. -
redirect_uri
moet overeenkomen met de URI die is gebruikt om de machtigingscode op te halen. -
code
is de vergunningscode die u van het /authorize eindpunt ontving. -
code_verifier
is de PKCE codecontroleur die uw app in wordt geproduceerd creeert de Sleutel van het Bewijs voor de Uitwisseling van de Code. -
client_id
identificeert 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 maken, vergelijkbaar met het volgende:
code language-none |
---|
|