Siirry sisältöön
Dokumentaatio · iOS ja Android

iOS ja Android

Natiivisovellukset kirjaavat ihmiset sisään ympäristönsä Lobbyssa järjestelmän selaimessa, ei koskaan verkkonäkymässä (web view): ihmiset käyttävät pääsyavaimiaan, tallennettuja salasanojaan ja Usher-istuntoaan, eikä sovellus koskaan näe salasanaa. SDK:t hoitavat puolestasi loput OpenID Connectista ja säilyttävät tunnukset laitteella.

Rekisteröi sovellus

Avaa Usher Consolessa ympäristö ja sitten Sovellukset → Uusi sovellus → Mobiili- tai työpöytäsovellus. Anna sille yksityiskäyttöinen uudelleenohjaus, joka on muodostettu omistamastasi verkkotunnuksesta, kuten com.example.notes:/oauth/callback. Sovellus saa asiakastunnuksen mutta ei salaisuutta: puhelimen sovellus ei pysty pitämään sitä salassa, joten se käyttää sen sijaan PKCE:tä. Console näyttää määritykset molemmille alustoille.

iOS ja macOS

swift
import UsherKit

let usher = UsherClient(configuration: .init(
    issuer: URL(string: "https://login.example.com")!,
    clientID: "…",
    redirectURI: URL(string: "com.example.notes:/oauth/callback")!))

let session = try await usher.signIn()
var request = URLRequest(url: URL(string: "https://api.example.com/notes")!)
try await usher.authorize(&request)

Tunnukset säilytetään avainnipussa, vain tällä laitteella.

Android

kotlin
// build.gradle.kts: manifestPlaceholders["usherRedirectScheme"] = "com.example.notes"
val usher = Usher.client(context, UsherConfiguration(
    issuer = "https://login.example.com",
    clientId = "…",
    redirectUri = "com.example.notes:/oauth/callback"))

val session = usher.signIn(Usher.customTabs(activity))

Kirjautuminen avautuu Custom Tab -näkymässä. Istunto salataan Android Keystoressa olevalla avaimella.

Mitä SDK:t tarkistavat

  • PKCE, state ja nonce jokaisessa kirjautumisessa sekä vastauksessa nimetty myöntäjä (RFC 9207).
  • ID-tunnuksen allekirjoitus ympäristösi avaimia vasten sekä sen myöntäjä, yleisö ja vanhenemisaika.
  • Päivitystunnukset vaihtuvat: kutakin käytetään kerran. Uloskirjautuminen mitätöi tunnuksen Usherissa.
  • DPoP, jos otat sen käyttöön: tunnukset sidotaan laitteella olevaan avaimeen, joten muualle kopioituina ne ovat hyödyttömiä.

Jos haluat kutsua omaa API:asi käyttöoikeustunnuksella, nimeä API ja pyydä sitä resources-asetuksella: katso Omat API:t.