Person zur Anmeldung schicken
Ihre Website startet einen normalen OpenID-Connect-Authorization-Code-Flow auf Ihrem CodeB-Mandanten mit acr_values=urn:codeb:acr:eudi-wallet und den benötigten CAMARA-Scopes.
Entwickler · CAMARA-kompatibel · EUDI-Wallet
Netzbasierte Prüfungen wie CAMARA Number Verification beweisen, welche SIM-Karte in einem Telefon steckt. Sie beweisen nicht, wer es hält. CodeB beantwortet dieselben zwei CAMARA-APIs – Number Verification und KYC Match – aus der EUDI-Wallet der Person: Die Person bestätigt mit Fingerabdruck oder PIN, und Ihr Dienst erfährt, ob Telefonnummer und Personendaten zu dieser Person gehören. Ja oder nein, mehr nicht.
CAMARA-API-Formen · OpenID Connect · EUDI-Wallet (PID) · EU-gehostet, eigener Mandant
number-verification (gehört diese Nummer der Person?) und kyc-match (stimmen Name, Geburtsdatum, Adresse?).true, false oder not_available je Feld. Die Personendaten bleiben auf dem Server.Beide nutzen dieselben API-Formen. Was sie beweisen, ist verschieden.
| Netzprüfung (SIM-basiert) | CodeB-Wallet-Prüfung | |
|---|---|---|
| Was bewiesen wird | Eine SIM-Karte dieser Nummer steckt im anfragenden Gerät | Die Person hat mit ihrer Wallet bestätigt (Fingerabdruck oder PIN) und diese Nummer wurde für sie bestätigt |
| Gestohlenes oder geliehenes Telefon | Besteht die Prüfung | Scheitert: Die Wallet braucht die Entsperrung der Person |
| SIM-Tausch | Braucht eine eigene SIM-Swap-Prüfung | Nicht betroffen: Die Nummer gehört der bestätigten Person, nicht der SIM |
| Name, Geburtsdatum, Adresse | Aus Kundendaten des Betreibers, wo vorhanden | Aus der PID in der Wallet, dieselben Daten wie im Ausweis |
| Abdeckung | Hängt vom Mitmachen jedes Betreibers ab | Jede EU-Wallet nach dem EUDI-ARF, jedes Netz, auch WLAN |
| Daten an Ihren Dienst | Abgleichergebnisse | Nur Abgleichergebnisse (ja / nein / nicht verfügbar) |
Dreibeinig wie bei CAMARA: Die Person stimmt zu, Ihr Backend ruft die API mit dem Zugriffstoken auf.
Ihre Website startet einen normalen OpenID-Connect-Authorization-Code-Flow auf Ihrem CodeB-Mandanten mit acr_values=urn:codeb:acr:eudi-wallet und den benötigten CAMARA-Scopes.
QR-Code am Computer oder die Wallet öffnet sich auf demselben Telefon. Die Person bestätigt die Anmeldung mit Fingerabdruck oder PIN; die Wallet legt die PID vor.
Code gegen ein Zugriffstoken tauschen (die Bestätigung mit der Wallet darf höchstens 15 Minuten alt sein) und /number-verification/…/verify oder /kyc-match/…/match aufrufen.
devicePhoneNumberVerified: true oder je Feld "true", "false", "not_available". Sonst verlässt nichts den Server.
POST /camara.ashx/number-verification/v0/verifyScope number-verification:verify. Body {"phoneNumber":"+35699123456"} or {"hashedPhoneNumber":"<sha256 hex>"}. Answer {"devicePhoneNumberVerified":true}.GET /camara.ashx/number-verification/v0/device-phone-numberScope number-verification:device-phone-number:read. Answer {"devicePhoneNumber":"+35699123456"}, or 404 when no number was verified.POST /camara.ashx/kyc-match/v0.3/matchScope kyc-match:match. Send any of givenName, familyName, name, familyNameAtBirth, birthdate, gender, address, streetName, streetNumber, postalCode, locality, region, country, email (and optionally phoneNumber). Each field is answered "true" | "false" | "not_available".GET /camara.ashx/openapi.jsonOpenAPI 3.1 description of these APIs. The complete platform description is at /openapi.json.Which clients may callOn by default: every OIDC client registered on the site can call the APIs as soon as it asks for the scope. The site admin can limit each API to chosen clients or switch it off on the admin page “CAMARA identity APIs”; refused calls get 403. At most 5 calls per API per wallet confirmation (429 after that).# 1. Person zur Wallet-Anmeldung schicken (Ihr OIDC-Client auf dem Mandanten)
GET <authorization_endpoint from https://<tenant>/.well-known/openid-configuration>?response_type=code&client_id=<your-client>
&redirect_uri=<your-callback>&scope=openid%20number-verification:verify%20kyc-match:match
&acr_values=urn:codeb:acr:eudi-wallet&state=<state>&code_challenge=<S256>&code_challenge_method=S256
# 2. Nach dem Code-Tausch: Gehört +35699123456 dieser Person?
curl -X POST https://<tenant>/camara.ashx/number-verification/v0/verify \
-H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-d '{"phoneNumber":"+35699123456"}'
{"devicePhoneNumberVerified":true}
# 3. Stimmen Name und Geburtsdatum mit dem Ausweis in der Wallet überein?
curl -X POST https://<tenant>/camara.ashx/kyc-match/v0.3/match \
-H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-d '{"givenName":"Maria","familyName":"Keller","birthdate":"1985-04-12"}'
{"givenNameMatch":"true","familyNameMatch":"true","birthdateMatch":"true"}
Dieselbe Prüfung funktioniert ohne Integration. Wer angerufen wird, öffnet Anrufer bestätigen, liest einen 6-stelligen Code vor, und der Anrufer bestätigt mit der Wallet. Die angerufene Person sieht dann den bestätigten Namen – und die bestätigte Nummer, wenn der Anrufer zustimmt. Jedes Netz, jedes Telefon, auch Videoanrufe. Eine geklonte Stimme oder eine gefälschte Rufnummer kommt nicht durch, weil die Prüfung die Wallet der echten Person braucht.
not_available beantwortet.CAMARA ist ein Open-Source-Projekt, das gemeinsame APIs für Telekommunikationsdienste definiert. Number Verification beantwortet, ob eine Telefonnummer zum anfragenden Gerät gehört; KYC Match vergleicht Kundendaten mit den Daten eines Anbieters und antwortet je Feld mit true oder false.
CodeB beantwortet dieselben API-Formen aus der EUDI-Wallet der Person statt aus dem Mobilfunknetz. Das beweist die Person, nicht nur die SIM-Karte: Ein gestohlenes oder geliehenes Telefon besteht nicht, weil die Wallet Fingerabdruck oder PIN der Person braucht.
Nein. KYC Match liefert je Feld nur true, false oder not_available. Number Verification liefert nur true oder false. Der Endpunkt device-phone-number liefert die bestätigte Nummer nur, wenn Sie diesen Scope angefragt und die Person zugestimmt hat.
Jede nach dem EUDI-ARF entwickelte Wallet, die dem CodeB-Verifier eine PID vorlegen kann, zum Beispiel die CodeB Wallet für Android oder die Web-Wallet unter myeudi.app.
Nein. Die Prüfung läuft zwischen der Wallet der Person und Ihrem CodeB-Mandanten, in jedem EU-Land und in jedem Netz.
Ja. Anfrage- und Antwortformate folgen CAMARA. Richten Sie den Client auf Ihren CodeB-Mandanten, holen Sie das Zugriffstoken mit acr_values=urn:codeb:acr:eudi-wallet und rufen Sie dieselben Pfade unter /camara.ashx auf.
Richten Sie einen OIDC-Client auf Ihrem Mandanten ein, fügen Sie die Scopes hinzu und rufen Sie die API mit dem Zugriffstoken auf.