wiki-spaces-s1-pages-2636611585.md
By Mayer, Wolfram
2 min
Add a reaction
Bitte beachten Sie, dass diese Authentifizierung noch nicht zur Verfügung steht.
Um ein Sage ID Access Token für eine Single Page Applikation (SPA) zu erhalten, muss OAuth 2.0 grant flow mit Proof Key for Code Exchange (RFC 7636) implementiert werden.
Mit PKCE erzeugt eine Applikation für jede Anfrage eine kryptographisch zufälligen Key, den code_verifier und transformiert einen Parameter code_challenge, der an Sage ID gesendet wir, um den authorization_code zu erhalten. Wenn eine Applikation den authorization_code erhält, wird dieser code und code_verifier an den Sage ID Token Endpunkt gesendet, um im Austausch die anfragten Token (Access Token) zu erhalten.
Dieser OAuth 2.0 Flow hat folgende Schritte:
Ihre SPA Applikation initiiert den Flow und leitet einen Benutzer zu Sage ID weiter - dem Endpunkt /authorize und sendet code_challenge und code_challenge_method Parameter.
Sage ID leitet einen Benutzer zu Ihrer SPA Applikation weiter mit einemauthorization_code Parameter.
Ihre SPA Applikation sendet authorization_code und code_verifier zusammen mit der redirect_uri und client_id zu Sage ID, dem /oauth/token Endpunkt.
Sage ID validiert diese Anfrage und gibt einen Access Token und optional ein Refresh Token an Ihre SPA Applikation zurück.
Ihre SPA Applikation kann mit dem Access Token eine Anfrage an die Sage 100 API senden mit dem Benutzerkontext.
Folgende Postman Collection enthält OAuth 2.0 Flow auch für die Single Page Applikation für die noch ein Sage ID Client beantragt werden muss.
Open
Um ein Sage ID Access Token für eine Single Page Applikation (SPA) zu erhalten, muss der OAuth 2.0 Grant flow mit Proof Key for Code Exchange (Authorization Code) implementiert werden.
Um die Implementierung zu standardisieren und zu vereinfachen, wird die Bibliothek @auth0/auth0-react verwendet.
Öffnen Sie in einem Terminal Ihrer Wahl den Ordner der Single Page Application (SPA) und installieren Sie das Paket.
npm install @auth0/auth0-react --save
Hinweis
Die Bibliothek enthält alle Typisierungen, sodass auch bei er Verwendung von typescript keine weiteren Installationen notwendig sind.
Die Bibliothek stellt einen Provider zur Verfügung, der an einer hohen Stelle platziert werden sollte. Diesem Provider sind die durch Sage bereitgestellten Parameter mitzuteilen.
<Auth0Provider domain={auth0Configuration.domain} clientId={auth0Configuration.clientId} audience={auth0Configuration.audience} redirectUri={window.location.origin}> <App /> </Auth0Provider>
In allen innerhalb des Providers verwendeten Komponenten steht ab sofort ein Hook zur Verfügung, der die gesamten Funktionen zur Authentifizierung beinhaltet.
const { getAccessTokenSilently, getAccessTokenWithPopup, getIdTokenClaims, loginWithRedirect, loginWithPopup, logout, buildAuthorizeUrl, buildLogoutUrl, handleRedirectCallback } = useAuth0();
Collapse action bar
View all comments
Open Details Panel
Create page
Open Rovo Chat
Add a comment
Add a reaction