pub struct ServerMetadata {Show 15 fields
pub issuer: String,
pub authorization_endpoint: String,
pub token_endpoint: String,
pub pushed_authorization_request_endpoint: String,
pub require_pushed_authorization_requests: bool,
pub response_types_supported: Vec<&'static str>,
pub response_modes_supported: Vec<&'static str>,
pub grant_types_supported: Vec<&'static str>,
pub code_challenge_methods_supported: Vec<&'static str>,
pub token_endpoint_auth_methods_supported: Vec<&'static str>,
pub token_endpoint_auth_signing_alg_values_supported: Vec<&'static str>,
pub scopes_supported: Vec<&'static str>,
pub dpop_signing_alg_values_supported: Vec<&'static str>,
pub authorization_response_iss_parameter_supported: bool,
pub client_id_metadata_document_supported: bool,
}Expand description
The authorization server metadata document, RFC 8414 plus the fields the atproto OAuth profile requires.
Fields§
§issuer: StringThis deployment’s own origin, read from its zone’s own service
document; see issuer_for.
GET /oauth/authorize.
token_endpoint: StringPOST /oauth/token.
POST /oauth/par.
Always true: PAR is not optional on this deployment.
response_types_supported: Vec<&'static str>Always ["code"]: this profile is authorization-code only.
response_modes_supported: Vec<&'static str>The modes a push may name as its response_mode; see
crate::oauth::authorize::ResponseMode.
grant_types_supported: Vec<&'static str>Always ["authorization_code", "refresh_token"].
code_challenge_methods_supported: Vec<&'static str>Always ["S256"]: PKCE’s plain method is refused at PAR.
token_endpoint_auth_methods_supported: Vec<&'static str>none for a public client and private_key_jwt for a confidential
one, as the atproto profile requires; see crate::oauth::client_auth.
token_endpoint_auth_signing_alg_values_supported: Vec<&'static str>Always ["ES256"]: the one algorithm a confidential client’s
assertion is verified with.
scopes_supported: Vec<&'static str>The scopes a client may name here; see SCOPES_SUPPORTED (this
module, private). What any particular agent may be granted is
plan/scope-policy.md’s ceiling.
dpop_signing_alg_values_supported: Vec<&'static str>Always ["ES256"]: the DPoP proof signing algorithm this deployment
accepts.
Always true: authorization responses carry iss, per RFC 9207.
client_id_metadata_document_supported: boolatproto’s own extension: this server accepts a client_id that is a
fetchable metadata document URL rather than only a pre-registered
identifier.
Trait Implementations§
Source§impl Clone for ServerMetadata
impl Clone for ServerMetadata
Source§fn clone(&self) -> ServerMetadata
fn clone(&self) -> ServerMetadata
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ServerMetadata
impl Debug for ServerMetadata
Auto Trait Implementations§
impl Freeze for ServerMetadata
impl RefUnwindSafe for ServerMetadata
impl Send for ServerMetadata
impl Sync for ServerMetadata
impl Unpin for ServerMetadata
impl UnsafeUnpin for ServerMetadata
impl UnwindSafe for ServerMetadata
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more