pub struct AuthorizationServerMetadata {Show 20 fields
pub issuer: Url,
pub authorization_endpoint: Url,
pub token_endpoint: Url,
pub jwks_uri: Option<Url>,
pub registration_endpoint: Option<Url>,
pub scopes_supported: Option<Vec<String>>,
pub response_types_supported: Vec<String>,
pub response_modes_supported: Option<Vec<String>>,
pub grant_types_supported: Option<Vec<String>>,
pub token_endpoint_auth_methods_supported: Option<Vec<String>>,
pub token_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>,
pub service_documentation: Option<Url>,
pub revocation_endpoint: Option<Url>,
pub revocation_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>,
pub revocation_endpoint_auth_methods_supported: Option<Vec<String>>,
pub introspection_endpoint: Option<Url>,
pub introspection_endpoint_auth_methods_supported: Option<Vec<String>>,
pub introspection_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>,
pub code_challenge_methods_supported: Option<Vec<String>>,
pub userinfo_endpoint: Option<String>,
}Fields§
§issuer: UrlThe base URL of the authorization server (e.g., “http://localhost:8080/realms/master/”).
URL to which the client redirects the user for authorization.
token_endpoint: UrlURL to exchange authorization codes for tokens or refresh tokens.
jwks_uri: Option<Url>URL of the authorization server’s JWK Set JWK document
registration_endpoint: Option<Url>Endpoint where clients can register dynamically.
scopes_supported: Option<Vec<String>>List of supported OAuth scopes (e.g., “openid”, “profile”, “email”, mcp:tools)
response_types_supported: Vec<String>Response Types. Required by spec. If missing, default is empty vec. Examples: “code”, “token”, “id_token”
response_modes_supported: Option<Vec<String>>Response Modes. Indicates how the authorization response is returned. Examples: “query”, “fragment”, “form_post”
grant_types_supported: Option<Vec<String>>List of supported Grant Types Examples: “authorization_code”, “client_credentials”, “refresh_token”
token_endpoint_auth_methods_supported: Option<Vec<String>>Methods like “client_secret_basic”, “client_secret_post”
token_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>Signing algorithms for client authentication (e.g., “RS256”)
service_documentation: Option<Url>Link to human-readable docs for developers. https://datatracker.ietf.org/doc/html/rfc8414
revocation_endpoint: Option<Url>OAuth 2.0 Token Revocation endpoint.
revocation_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>Similar to token endpoint, but for revocation-specific auth.
revocation_endpoint_auth_methods_supported: Option<Vec<String>>Tells the client which authentication methods are supported when accessing the token revocation endpoint.
These are standardized methods from RFC 6749 (OAuth 2.0)
Common values: “client_secret_basic”, “client_secret_post”, “private_key_jwt”
client_secret_basic – client credentials sent in HTTP Basic Auth.
client_secret_post – client credentials sent in the POST body.
private_key_jwt – client authenticates using a signed JWT.
introspection_endpoint: Option<Url>URL to validate tokens and get their metadata.
introspection_endpoint_auth_methods_supported: Option<Vec<String>>Auth methods for accessing introspection.
introspection_endpoint_auth_signing_alg_values_supported: Option<Vec<String>>Algorithms for accessing introspection.
code_challenge_methods_supported: Option<Vec<String>>Methods supported for PKCE (Proof Key for Code Exchange). Common values: “plain”, “S256”
userinfo_endpoint: Option<String>Implementations§
Source§impl AuthorizationServerMetadata
impl AuthorizationServerMetadata
Sourcepub fn new(
issuer: &str,
authorization_endpoint: &str,
token_endpoint: &str,
) -> Result<Self, ParseError>
pub fn new( issuer: &str, authorization_endpoint: &str, token_endpoint: &str, ) -> Result<Self, ParseError>
Creates a new AuthorizationServerMetadata instance with the minimal required fields.
According to the OAuth 2.0 Authorization Server Metadata Metadata specification (RFC 8414),
the following fields are required for a valid metadata document:
issuerauthorization_endpointtoken_endpoint
All other fields are initialized with their default values (typically None or empty collections).
Sourcepub async fn from_discovery_url(
discovery_url: &str,
) -> Result<Self, McpSdkError>
pub async fn from_discovery_url( discovery_url: &str, ) -> Result<Self, McpSdkError>
Fetches authorization server metadata from a remote .well-known/openid-configuration
or OAuth 2.0 Authorization Server Metadata endpoint.
This performs an HTTP GET request and deserializes the response directly into
AuthorizationServerMetadata. The endpoint must return a JSON document conforming
to RFC 8414 (OAuth 2.0 Authorization Server Metadata) or OpenID Connect Discovery 1.0.
Trait Implementations§
Source§impl Clone for AuthorizationServerMetadata
impl Clone for AuthorizationServerMetadata
Source§fn clone(&self) -> AuthorizationServerMetadata
fn clone(&self) -> AuthorizationServerMetadata
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more