iOS Setup & Backend-Verifizierung
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Verwendetes iOS-natives System
Abschnitt mit dem Titel „Verwendetes natives iOS-System“Auf iOS verwendet dieses Plugin Apple App Attest vom DeviceCheck Framework.
Anforderungen
Abschnitt „Voraussetzungen“- iOS 14+
- Für echte Validierungsabläufe wird ein physisches Gerät empfohlen
- Xcode-Ziel mit aktivierter App-Attest-Funktion
Xcode-Einrichtung
Abschnitt mit dem Titel „Xcode-Einrichtung“- Öffnen Sie Ihr iOS-App-Target in Xcode.
- Gehe zu Signierung & Capabilities.
- Klicken + Capability und hinzufügen App Attest.
Es sind keine benutzerdefinierten iOS-Berechtigungen in Info.plist für App Attest selbst erforderlich.
Client-Flow
Abschnitt mit dem Titel „Client-Flow“import { AppAttest } from '@capgo/capacitor-app-attest';
const { keyId } = await AppAttest.prepare();
const attestation = await AppAttest.createAttestation({ keyId, challenge: 'backend-registration-challenge',});
const assertion = await AppAttest.createAssertion({ keyId, payload: 'backend-request-payload',});Senden attestation.token und assertion.token an Ihr Backend senden. Validieren Sie sie nicht in der App.
Backend-Workflow (iOS)
Abschnitt mit dem Titel „Backend-Workflow (iOS)“Registrierung (createAttestation)
Abschnitt mit dem Titel „Registrierung (createAttestation)“- Backend erstellt einmalig
challenge. - App ruft auf
createAttestation({ keyId, challenge }). - Backend validiert die App Attest-Attestation:
- Zertifikatskette ist gültig und an Apple App Attest verankert
- App-Identität entspricht Ihrer App (
bundleId, Team) clientDataHashentsprichtSHA256(challenge)
- Geräteschlüsselstatus speichern (
keyId, öffentlicher Schlüssel und Verifier-Metadaten).
Schutz anfordern (createAssertion)
Abschnitt mit dem Titel „Schutz anfordern (createAssertion)“- Backend erstellt einmalig
payload(oder kanonischer Request-Hash-Input). - App ruft auf
createAssertion({ keyId, payload }). - Backend verifiziert die Assertion-Signatur mit zuvor gespeichertem Schlüsselmaterial.
- Replay-Schutz und Nonce-TTL-Prüfungen erzwingen.
iOS-Schema
Abschnitt mit dem Titel „iOS-Schema“sequenceDiagram participant App as iOS App participant Plugin as AppAttest plugin participant Apple as Apple App Attest participant BE as Backend
BE->>App: one-time challenge App->>Plugin: prepare() Plugin->>Apple: generateKey() Apple-->>Plugin: keyId
App->>Plugin: createAttestation(keyId, challenge) Plugin->>Apple: attestKey(keyId, SHA256(challenge)) Apple-->>Plugin: attestation token Plugin-->>App: token + platform + format + keyId App->>BE: token + challenge + keyId BE->>BE: verify Apple attestation rules
BE->>App: one-time payload App->>Plugin: createAssertion(keyId, payload) Plugin->>Apple: generateAssertion(keyId, SHA256(payload)) Apple-->>Plugin: assertion token Plugin-->>App: token + platform + format + keyId App->>BE: token + payload + keyId BE->>BE: verify signature + replay policyMinimaler Backend-Payload-Contract
Abschnitt mit dem Titel „Minimaler Backend-Payload-Contract“Registrierung:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Assertion:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Weiter mit iOS-Setup & Backend-Verifizierung
Abschnitt mit dem Titel „Weiter mit iOS-Setup & Backend-Verifizierung“Wenn du es nutzt iOS-Setup & Backend-Verifizierung um Sicherheit und Compliance zu planen, verbinden Sie es mit @capgo/capacitor-app-attest verwenden für die native Funktion in „@capgo/capacitor-app-attest verwenden“, Verschlüsselung für die Implementierungsdetails in Encryption, Compliance für das Implementierungsdetail in Compliance, Capgo Security-Scanner für den Produkt-Workflow im Capgo Security Scanner, und Capgo Sicherheit für den Produkt-Workflow in Capgo Security.