Expand description
Rust implementation of the AAuth authorization protocol.
§Features
client— framework-agnostic auth flow and key material (client::injector,client::keys)client-reqwest— reqwest middleware and token exchange (client::reqwest)server— token verification, resource token creation, policy traits, pending storeserver-axum— axum middleware and route helpers (server::axum)
§Protocol roles
- Agent —
client - Resource server —
server::resource - Person server —
server::person - Access server —
server::access
Re-exports§
pub use client::keys::AgentJwtMinter;pub use client::keys::KeyMaterialProvider;pub use client::keys::StaticKeyMaterialProvider;pub use client::keys::TestAgentJwtMinter;pub use client::keys::create_key_provider;pub use client::keys::mint_agent_jwt;pub use client::resolve::agent_jwt_from_signature_key;pub use client::resolve::person_server_from_agent_jwt;pub use client::resolve::resolve_person_server_url;pub use client::resolve::resource_token_audience_unverified;pub use error::AAuthError;pub use error::Result;pub use error::TokenError;pub use headers::build_aauth_requirement;pub use headers::build_capabilities_header;pub use headers::build_mission_header;pub use headers::parse_aauth_requirement;pub use headers::parse_capabilities_header;pub use headers::parse_mission_header;pub use interaction_code::canonicalize_code;pub use interaction_code::generate_code;pub use jwt::ActClaim;pub use jwt::AgentClaims;pub use jwt::AuthClaims;pub use jwt::CnfClaim;pub use jwt::OkpJwk;pub use jwt::OkpSigningJwk;pub use jwt::ResourceClaims;pub use jwt::VerifiedToken;pub use jwt::decode_resource_token_unverified;pub use jwt::jwk_set_from_okp;pub use jwt::jwk_thumbprint;pub use keys::Ed25519KeyPair;pub use keys::OkpSigningKey;pub use keys::TestKeys;pub use keys::create_test_keys;pub use keys::static_agent_metadata_fetcher;pub use keys::static_person_metadata_fetcher;pub use metadata::MetadataFetcher;pub use metadata::StaticMetadataFetcher;pub use server::access::AccessAuthJwtMinter;pub use server::access::AccessServerMetadata;pub use server::access::TestAccessAuthJwtMinter;pub use server::access::mint_access_auth_jwt;pub use server::deferred::build_accepted;pub use server::deferred::build_payment_required_stub;pub use server::person::federate_to_access_server;pub use server::person::fulfill_token_exchange;pub use server::person::verify_federated_auth_token;pub use server::person::FederationConfig;pub use server::person::FederationOutcome;pub use server::AccessTokenContext;pub use server::AccessTokenPolicy;pub use server::AlwaysGrantAccessPolicy;pub use server::AlwaysGrantPersonPolicy;pub use server::AlwaysGrantResourcePolicy;pub use server::AuthGrant;pub use server::AuthJwtMinter;pub use server::ClarificationThenGrantAccessPolicy;pub use server::ClarificationThenGrantPersonPolicy;pub use server::DeferApprovalAccessPolicy;pub use server::DeferClaimsAccessPolicy;pub use server::DeferInteractionAccessPolicy;pub use server::DeferInteractionPersonPolicy;pub use server::DeferInteractionResourcePolicy;pub use server::DeferRequirement;pub use server::Ed25519ResourceTokenSigner;pub use server::FederationPendingState;pub use server::FixedSubPersonPolicy;pub use server::InMemoryOpaqueAccessStore;pub use server::InMemoryPendingStore;pub use server::OpaqueAccessStore;pub use server::PendingContext;pub use server::PendingInput;pub use server::PendingKind;pub use server::PendingOutcome;pub use server::PendingRecord;pub use server::PendingSnapshot;pub use server::PendingStatus;pub use server::PendingStore;pub use server::PersonPendingContext;pub use server::PersonTokenContext;pub use server::PersonTokenDecision;pub use server::PersonTokenPolicy;pub use server::PolicyError;pub use server::ResourceAccessContext;pub use server::ResourceAccessMode;pub use server::ResourceAccessPolicy;pub use server::ResourceConsentDecision;pub use server::ResourceConsentPolicy;pub use server::ResourceTokenOptions;pub use server::ResourceTokenSigner;pub use server::TestAuthJwtMinter;pub use server::TokenPolicyDecision;pub use server::VerifyResourceTokenOptions;pub use server::VerifyTokenOptions;pub use server::create_resource_token;pub use server::mint_auth_jwt;pub use server::resolve_resource_token_audience;pub use server::verify_resource_token;pub use server::verify_token;pub use server::ClaimsSubmission;pub use server::DEFAULT_PENDING_TTL_SECS;pub use server::generate_pending_id;pub use server::pending_location;pub use types::*;