Struct dcaf::endpoints::token_req::AccessTokenRequest
source · pub struct AccessTokenRequest {
pub client_id: Option<String>,
pub grant_type: Option<GrantType>,
pub audience: Option<String>,
pub redirect_uri: Option<String>,
pub client_nonce: Option<ByteString>,
pub scope: Option<Scope>,
pub ace_profile: Option<()>,
pub req_cnf: Option<ProofOfPossessionKey>,
pub issuer: Option<String>,
}
Expand description
Request for an access token, sent from the client, as defined in section 5.8.1 of RFC 9200.
Use the AccessTokenRequestBuilder
(which you can access using the
AccessTokenRequest::builder()
method) to create an instance of this struct.
Example
Figure 5 of RFC 9200 gives us an example of an access token request, given in CBOR diagnostic notation1:
{
"client_id" : "myclient",
"audience" : "tempSensor4711"
}
This could be built and serialized as an AccessTokenRequest
like so:
let request: AccessTokenRequest = AccessTokenRequest::builder()
.client_id("myclient")
.audience("tempSensor4711")
.build()?;
let mut serialized = Vec::new();
request.clone().serialize_into(&mut serialized)?;
assert_eq!(AccessTokenRequest::deserialize_from(serialized.as_slice())?, request);
Note that abbreviations aren’t used here, so keep in mind that the labels are really integers instead of strings. ↩
Fields§
§client_id: Option<String>
The client identifier as described in section 2.2 of RFC 6749.
grant_type: Option<GrantType>
Grant type used for this request.
Defaults to GrantType::ClientCredentials
.
See also the documentation of GrantType
for details.
audience: Option<String>
The logical name of the target service where the client intends to use the requested security token.
redirect_uri: Option<String>
URI to redirect the client to after authorization is complete.
client_nonce: Option<ByteString>
Client nonce to ensure the token is still fresh.
scope: Option<Scope>
Scope of the access request as described by section 3.3 of RFC 6749.
See also the documentation of Scope
for details.
ace_profile: Option<()>
Included in the request if the AS shall include the ace_profile
parameter in its
response.
req_cnf: Option<ProofOfPossessionKey>
Contains information about the key the client would like to bind to the access token for proof-of-possession.
See also the documentation of ProofOfPossessionKey
for details.
issuer: Option<String>
Issuer of the token. Note that this is only used by libdcaf and not present in the ACE-OAuth specification for access token requests. Instead, it is usually encoded as a claim in the access token itself.
Defined in section 3.1.1 of RFC 8392 and Table 6 of RFC 9200.
Implementations§
source§impl AccessTokenRequest
impl AccessTokenRequest
sourcepub fn builder() -> AccessTokenRequestBuilder
pub fn builder() -> AccessTokenRequestBuilder
Initializes and returns a new AccessTokenRequestBuilder
.
Trait Implementations§
source§impl Clone for AccessTokenRequest
impl Clone for AccessTokenRequest
source§fn clone(&self) -> AccessTokenRequest
fn clone(&self) -> AccessTokenRequest
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for AccessTokenRequest
impl Debug for AccessTokenRequest
source§impl Default for AccessTokenRequest
impl Default for AccessTokenRequest
source§fn default() -> AccessTokenRequest
fn default() -> AccessTokenRequest
source§impl PartialEq<AccessTokenRequest> for AccessTokenRequest
impl PartialEq<AccessTokenRequest> for AccessTokenRequest
source§fn eq(&self, other: &AccessTokenRequest) -> bool
fn eq(&self, other: &AccessTokenRequest) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl ToCborMap for AccessTokenRequest
impl ToCborMap for AccessTokenRequest
source§fn serialize_into<W>(self, writer: W) -> Result<(), Error<W::Error>>where
Self: Sized,
W: Write,
W::Error: Debug,
fn serialize_into<W>(self, writer: W) -> Result<(), Error<W::Error>>where Self: Sized, W: Write, W::Error: Debug,
writer
. Read moresource§fn deserialize_from<R>(reader: R) -> Result<Self, Error<R::Error>>where
Self: Sized,
R: Read,
R::Error: Debug,
fn deserialize_from<R>(reader: R) -> Result<Self, Error<R::Error>>where Self: Sized, R: Read, R::Error: Debug,
reader
— which is expected to be an instance of this type,
represented as a CBOR map bytestring — into an instance of this type. Read more