Μετάβαση στο περιεχόμενο
Τεκμηρίωση · iOS και Android

iOS και Android

Οι εγγενείς εφαρμογές συνδέουν τους χρήστες μέσω του Lobby του περιβάλλοντός τους στο πρόγραμμα περιήγησης του συστήματος, ποτέ σε προβολή ιστού: οι χρήστες χρησιμοποιούν τα κλειδιά πρόσβασης, τα αποθηκευμένα συνθηματικά και την περίοδο σύνδεσης Usher τους, και η εφαρμογή δεν βλέπει ποτέ συνθηματικό. Τα SDK κάνουν για εσάς το υπόλοιπο OpenID Connect και κρατούν τα διακριτικά στη συσκευή.

Καταχωρίστε την εφαρμογή

Στο Usher Console, ανοίξτε το περιβάλλον και, στη συνέχεια, Εφαρμογές → Νέα εφαρμογή → Κινητό ή υπολογιστής. Δώστε της μια ανακατεύθυνση ιδιωτικής χρήσης φτιαγμένη από έναν τομέα που σας ανήκει, όπως com.example.notes:/oauth/callback. Παίρνει αναγνωριστικό πελάτη και κανένα μυστικό: μια εφαρμογή σε τηλέφωνο δεν μπορεί να κρατήσει ένα, οπότε χρησιμοποιεί αντ’ αυτού PKCE. Το Console δείχνει τη ρύθμιση και για τις δύο πλατφόρμες.

iOS και 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)

Τα διακριτικά φυλάσσονται στο Μπρελόκ, μόνο σε αυτή τη συσκευή.

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

Η σύνδεση ανοίγει σε μια Προσαρμοσμένη καρτέλα. Η περίοδος σύνδεσης κρυπτογραφείται με ένα κλειδί στο Android Keystore.

Τι ελέγχουν τα SDK

  • PKCE, state και nonce σε κάθε σύνδεση, και τον εκδότη που κατονομάζεται στην απάντηση (RFC 9207).
  • Την υπογραφή του διακριτικού αναγνωριστικού με τα κλειδιά του περιβάλλοντός σας, καθώς και τον εκδότη, το κοινό και τη λήξη του.
  • Τα διακριτικά ανανέωσης εναλλάσσονται: το καθένα χρησιμοποιείται μία φορά. Η αποσύνδεση το ανακαλεί στο Usher.
  • DPoP, αν το ενεργοποιήσετε: διακριτικά δεμένα σε ένα κλειδί στη συσκευή, άχρηστα αν αντιγραφούν αλλού.

Για να καλέσετε το δικό σας API με το διακριτικό πρόσβασης, ονομάστε το API και ζητήστε το με resources: δείτε Τα δικά σας API.