OAuth2
Art. no. 216100577
Prenly støtter OAuth2 med eller uten OpenID Connect-utvidelse (OIDC) så lenge autorisasjonsserveren følger OAuth2-spesifikasjonen RFC 6749. Du trenger sannsynligvis en autorisasjonsserver som støtter OIDC.
Prenly støtter bare autorisasjonstilskuddet Authorization Code.
Klienten Prenly bruker i OAuth2-flyten, er e-papirens applikasjonsautoritet (en teknisk implementering som bestemmer hvordan autentisering og autorisasjon skal håndteres av e-papirapplikasjonen i Prenlys backend).
Prenly må vite et par ting for å kunne fungere som klient for autorisasjonsflyten:
- Valgfritt*. Den valgte utstederen.
Dette er bare obligatorisk hvis du vil bruke OpenID Connect-utvidelsen ID-tokenkrav.
- Obligatorisk. Klient-ID-en du vil at Prenly-autoriteten skal bruke.
- Obligatorisk. Klienthemmeligheten du vil at Prenly-autoriteten skal bruke når den utveksler den oppgitte autorisasjonstildelingen mot et tilgangstoken ved autentisering av Prenly-autoriteten (klienten).
- Valgfritt. Omfang. Du kan velge å få Prenly til å bruke en liste med mellomromseparerte områder som definerer tillatelsen for det utstedte tokenet. Omfanget/omfangene vil bli brukt med autorisasjonsendepunktet.
- Valgfritt. Status. Prenly støtter generering av tilstand i autorisasjonsforespørselen. Du kan velge å enten la Prenly generere en tilstand eller la autoriteten hoppe over den.
- Obligatorisk. Sluttpunkt for autorisasjon. Prenly-autoriteten navigerer brukeragenten til dette endepunktet for å starte autorisasjonsflyten med autorisasjonsserveren ved å logge på brukeren for å innhente autorisasjonskoden.
- Obligatorisk. Token-sluttpunkt. Prenly-autoriteten vil prøve å bytte brukerens autorisasjonskode mot et tilgangstoken eller, hvis autorisasjonsserveren støtter det (noe som anbefales på det sterkeste), bytte brukerens refresh-token mot et nytt tilgangstoken.
Autentiseringsmetode. Som standard bruker Prenly OIDCs klientautentiseringsmetode client_secret_basic ved autentisering med autorisasjonsserverens token-endepunkt. Prenly har også støtte for klientautentiseringsmetoden client_secret_post. Gi Prenly beskjed hvis du trenger sistnevnte, ellers vil standard autentiseringsmetode bli brukt.
- Anbefales. En ekstern URL for å logge ut brukeren. Prenly-autoriteten vil bruke den aktuelle brukerens valgte brukeragent til å logge ut brukeren eksternt på autorisasjonsserveren.
Prenly kan bruke plassholdere i URL-adressen når autorisasjonsforespørselen opprettes for å logge ut brukeren ved å oppgi følgende:
◦ Klient-ID;
◦ URI-en for utloggingsretur;
◦ URI-en for utloggingsfeil;
Vær oppmerksom på at state ikke kan brukes.
Et eksempel på en retur URI-spørringsparameter er "post_logout_redirect_uri".
For øyeblikket er det bare HTTP-metoden GET som støttes for URL-adressen for utlogging.
Bruker-ID
Prenly-autoriteten må vite hvordan den unike bruker-ID-en skal hentes ut etter at brukeren har blitt autorisert av autorisasjonsserveren.
Denne unike bruker-ID-en, hvis du bruker Prenly Remote Authority API, er `uid`-forespørselsparameteren når du ber om sammendragsinformasjon om brukeren.
Du kan velge én av følgende metoder:
- Fra en egenskap i JSON-token-sluttpunktsvaret. Hvis du velger dette, må du informere oss om navnet på egenskapen du har valgt, som inneholder bruker-ID-en.
- Fra OpenID Connect "sub"-kravet i det signerte ID-tokenet (som returneres av token-svaregenskapen "id_token").
For å kunne trekke ut bruker-ID-en må du også oppgi:
◦ Påkrevd. Den eksterne URL-adressen til offentlige nøkler for å validere ID-tokens. Denne URL-en må inneholde et JSON Web Key Set i henhold til JWT-standarder, som kan refereres til som enten JKU eller JWKS.
◦ Valgfritt. Egenskapsnavnet i brukerdatasvaret som inneholder et kundenummer.
- Fra "sub" -egenskapssvaret fra et UserInfo-sluttpunkt.
For å bruke denne metoden må du også oppgi:
◦ Påkrevd. URL-adressen til UserInfo-sluttpunktet. Endepunktet brukes til å hente grunnleggende informasjon om brukeren ved å bruke brukerens tilgangstoken til å autorisere forespørselen.
◦ Valgfritt. Egenskapsnavnet i brukerdatasvaret som inneholder et kundenummer.
Ressursserver
Du kan velge en ressursserver som Prenly støtter, eller du kan kontakte oss på hello@prenly.com for å be Prenly om å støtte din spesifikke ressursserver som en integrasjonsoppgave, som Prenly kan støtte basert på en betalt utviklingsoppgave.
Prenly støtter Prenly Remote Authority API fra versjon 1.4 eller nyere som en ressursserver. Se vår generelle informasjon om Prenly Remote authority API for konseptet med dette API-et. For å implementere Prenly Remote authority API som en ressursserver, se API-spesifikasjonen for endepunktet /oauth2/getUser.
"Ressursen" Prenly ber om fra ressursserveren, er en liste over abonnementsprodukter som er knyttet til brukeren. Produktene, i form av en produktkode, angir brukerens abonnementsstatus, der hver kode er konfigurert til å gi lesetilgang til publikasjoner i e-papirapplikasjonen din.
For å gi riktig lesetilgang avhengig av abonnementsproduktet må du også informere Prenly om hvilke publikasjoner produktkoden gir lesetilgang til. Alle ukjente produkter vil bli ignorert.
Du trenger kanskje ikke en dedikert ressursserver...
Prenly kan omgå en tradisjonell ressursserver helt og holdent hvis UserInfo-sluttpunktet ditt er i stand til å avsløre abonnementsstatusen til ressurseieren - brukeren.
Hvis UserInfo-sluttpunktet ditt er i stand til det, trenger du bare å oppgi kravet (egenskapsnavnet) i UserInfo-sluttpunktets JSON-data.
Påstandsverdien må være en JSON-liste (matrise) med strenger. Hvert listeelement representerer en produktkode for abonnementet.
Oppgi informasjon
Når du har all nødvendig informasjon, kan du kontakte Prenlys kundeservice på hello@prenly.com med informasjonen. Teamet vil deretter konfigurere Prenly-autorisasjonen for den valgte e-papirapplikasjonen til å bruke OAuth2 for deg.