Preskoči na vsebino
Dokumentacija · iOS in Android

iOS in Android

Izvorne aplikacije prijavljajo ljudi prek Lobbyja njihovega okolja v sistemskem brskalniku, nikoli v spletnem pogledu: ljudje uporabijo svoje ključe za dostop, shranjena gesla in sejo Usher, aplikacija pa nikoli ne vidi gesla. SDK-ji namesto vas opravijo preostanek OpenID Connect in žetone hranijo v napravi.

Registrirajte aplikacijo

V Usher Console odprite okolje, nato Aplikacije → Nova aplikacija → Mobilna ali namizna. Dajte ji preusmeritev za zasebno uporabo, sestavljeno iz domene, ki je vaša, na primer com.example.notes:/oauth/callback. Aplikacija dobi ID odjemalca in nobene skrivnosti: aplikacija v telefonu je ne more varno hraniti, zato namesto tega uporablja PKCE. Console prikaže nastavitev za obe platformi.

iOS in 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)

Žetoni so shranjeni v obesku za ključe, samo v tej napravi.

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))

Prijava se odpre v zavihku po meri (Custom Tab). Seja je šifrirana s ključem v shrambi ključev Android Keystore.

Kaj preverijo SDK-ji

  • PKCE, state in nonce pri vsaki prijavi ter izdajatelja, imenovanega v odgovoru (RFC 9207).
  • Podpis žetona ID s ključi vašega okolja ter njegovega izdajatelja, občinstvo in potek veljavnosti.
  • Žetoni za osvežitev se menjajo: vsak se uporabi enkrat. Odjava ga pri Usherju prekliče.
  • DPoP, če ga vklopite: žetoni, vezani na ključ v napravi, neuporabni, če so kopirani drugam.

Če želite z žetonom za dostop klicati svoj API, ga imenujte in zahtevajte z resources: glejte Vaši API-ji.