Čeština
Čeština
Appearance
Čeština
Čeština
Appearance
badges.ninja zveřejňuje veřejnou kryptografickou identitu, aby třetí strany mohly ověřovat přihlašovací údaje nesoucí digitální podpis. To je základ podpory Open Badges 3.0 / W3C Verifiable Credentials.
Tyto endpointy jsou veřejné a nevyžadují autentizaci. Jsou relativní k https://api.badges.ninja.
Identita vydavatele platformy je identifikátor did:web:
did:web:api.badges.ninjaPodle pravidel did:web se to překládá na DID dokument obsluhovaný na well-known cestě níže.
GET /.well-known/did.jsonVrací DID dokument, který vystavuje veřejný podpisový klíč vydavatele (Ed25519 JsonWebKey2020) jako svůj assertionMethod.
curl https://api.badges.ninja/.well-known/did.json{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1"
],
"id": "did:web:api.badges.ninja",
"verificationMethod": [
{
"id": "did:web:api.badges.ninja#<kid>",
"type": "JsonWebKey2020",
"controller": "did:web:api.badges.ninja",
"publicKeyJwk": { "kty": "OKP", "crv": "Ed25519", "x": "<base64url>" }
}
],
"assertionMethod": ["did:web:api.badges.ninja#<kid>"],
"authentication": ["did:web:api.badges.ninja#<kid>"]
}Typ obsahu odpovědi je application/did+json. Dokument je uložitelný do mezipaměti (mění se pouze při rotaci klíče).
Pro ověřovatele, kteří upřednostňují objevování JWK Set před rozlišením DID:
GET /.well-known/jwks.jsoncurl https://api.badges.ninja/.well-known/jwks.json{
"keys": [
{
"kty": "OKP",
"crv": "Ed25519",
"x": "<base64url>",
"kid": "<thumbprint>",
"alg": "EdDSA",
"use": "sig"
}
]
}kid je otisk veřejného klíče podle RFC 7638 a odpovídá fragmentu v identifikátoru verificationMethod DID dokumentu.
Každé ocenění lze načíst jako Open Badges 3.0 / W3C Verifiable Credential, podepsané klíčem vydavatele výše.
GET /certify-badge/award/{guid}/vc| Dotaz | Výsledek |
|---|---|
(výchozí) nebo ?format=jwt | Podepsaný VC-JWT (application/jwt) — importujte do peněženky OB 3.0. |
?format=json | Nepodepsaný JSON OpenBadgeCredential (application/vc+ld+json) — k prohlédnutí. |
# Signed credential (VC-JWT)
curl https://api.badges.ninja/certify-badge/award/<guid>/vc
# Human-readable credential JSON
curl "https://api.badges.ninja/certify-badge/award/<guid>/vc?format=json"Přihlašovací údaj je VC typu ["VerifiableCredential", "OpenBadgeCredential"] (kontexty https://www.w3.org/ns/credentials/v2 a kontext OB 3.0). Jeho issuer.id je did:web:api.badges.ninja a úspěch, identita příjemce (hashovaný e-mail) a data vydání/vypršení pocházejí z ocenění.
Token je kompaktní JWS s podpisem EdDSA. Chcete-li jej ověřit:
header.payload.signature.kid z hlavičky — odkazuje na DID dokument / JWKS.header.payload.import crypto from "node:crypto";
const [h, p, s] = jwt.split(".");
const jwks = await (await fetch("https://api.badges.ninja/.well-known/jwks.json")).json();
const jwk = jwks.keys[0];
const pub = crypto.createPublicKey({ key: jwk, format: "jwk" });
const ok = crypto.verify(null, Buffer.from(`${h}.${p}`), pub, Buffer.from(s, "base64url"));Příjemci si mohou přihlašovací údaj také stáhnout z nabídky Download na své veřejné stránce přihlašovacích údajů (Verifiable Credential).
Podpisy používají Ed25519 (EdDSA). Soukromý klíč je uchováván na straně serveru a nikdy není vystaven; zveřejňuje se pouze veřejný klíč výše.
Každý přihlašovací údaj je dnes také nezávisle ověřitelný prostřednictvím svého hostovaného assertion záznamu Open Badge 2.0. Viz Veřejné ověření pro JSON endpointy assertion, odznaku a vydavatele a Sdílení a ověření pro ověřovací stránku určenou příjemci.