ubl-auth (mono-crate)
One crate to run UBL ID everywhere:
- ✅ Pure-Rust JWT/JWKS verification (Ed25519) — works server & WASM
- ✅ Optional issuer server (feature
server): did:web, JWKS, OIDC discovery,/oauth/token(client_credentials, EdDSA) - ✅ Embedded rollout assets (feature
assets): SQL migrations &action.v1schema
Install
# Cargo.toml
= { = "0.7", = false }
# or with the server binary:
= { = "0.7", = ["server","assets"] }
Verify tokens (library)
use ;
let jwks_json = include_str!;
let token = var?;
let claims: Claims = verify_ed25519_jwt_with_jwks?;
assert!;
Run the issuer server (did:web + JWKS + discovery + /oauth/token)
# Ed25519 private key (PKCS8 PEM)
# Clients registry (id -> secret)
# Optional overrides
# sub for service tokens
# Run
Embedded assets (migrations + receipt schema)
License
Dual-licensed under MIT or Apache-2.0.
Note: the simple verify_ed25519_jwt_with_jwks example checks issuer/audience and signature.
For production, also enforce exp/nbf/clock-skew per your threat model.