Authlete
AuthorizationIssueRequest Class Reference

Request to Authlete's /api/auth/authorization/issue API. More...

Properties

string Ticket [get, set]
 The ticket issued by Authlete's /api/auth/authorization API to the authorization server implementation. It is the value returned from AuthorizationResponse.Ticket. The ticket is necessary to call Authlete's /api/auth/authorization/issue API. This request parameter is mandatory. More...
 
string Subject [get, set]
 The subject (= unique identifier) of the end-user who has granted authorization to the client application. This request parameter is required unless the authorization request has come with response_type=none (which means the cient application did not request any token to be returned). See 4. None Response Type of OAuth 2.0 Multiple Response Type Encoding Practices for details about response_type=none. More...
 
string Sub [get, set]
 The value of the "sub" claim used in the ID token which is to be issued. If this property returns null or its value is empty, the value of the Subject property is used as the value of the "sub" claim. The main purpose of this Sub property is to hide the actual value of the subject from client applications. More...
 
long AuthTime [get, set]
 The time when the authentication of the end-user occurred. It should represent the elapsed time since the Unix epoch (1970-Jan-1) in seconds. More...
 
string Acr [get, set]
 The Authentication Context Class Reference performed for the end-user authentication. More...
 
string Claims [get, set]
 The claims of the end-user (= pieces of information about the end-user) in JSON format. This request parameter is optional. More...
 
Property[] Properties [get, set]
 Extra properties that you want to associate with an access token and/or an authorization code which will be issued. This request parameter is optional. More...
 
string[] Scopes [get, set]
 Scopes that should be associated with an authorization code and/or an access token. If null (the default value) is set, the scopes specified in the original authorization request from the client application are used. In other cases, the scopes set to this property will replace the original scopes contained in the original request. This request parameter is optional. More...
 
string IdtHeaderParams [get, set]
 JSON that represents additional JWS header parameters for ID tokens that may be issued based on the authorization request. More...
 

Detailed Description

Request to Authlete's /api/auth/authorization/issue API.

Property Documentation

◆ Acr

string Acr
getset

The Authentication Context Class Reference performed for the end-user authentication.

◆ AuthTime

long AuthTime
getset

The time when the authentication of the end-user occurred. It should represent the elapsed time since the Unix epoch (1970-Jan-1) in seconds.

◆ Claims

string Claims
getset

The claims of the end-user (= pieces of information about the end-user) in JSON format. This request parameter is optional.

The authorization server implementation is required to retrieve claims of the subject (= information about the end-user) from its database and format them in JSON format.

For example, if "given_name" claim, "family_name" claim and "email" claim are requested, the authorization server implementation should generate a JSON object like the following and set its string representation to this Claims property.

{
"given_name": "Takahiko",
"family_name": "Kawasaki",
"email": "takahiko.kawasaki@example.com"
}

See 5.1. Standard Claims of OpenID Connect Core 1.0 for details about the format.

◆ IdtHeaderParams

string IdtHeaderParams
getset

JSON that represents additional JWS header parameters for ID tokens that may be issued based on the authorization request.

Since version 1.4.0.

◆ Properties

Property [] Properties
getset

Extra properties that you want to associate with an access token and/or an authorization code which will be issued. This request parameter is optional.

Extra properties will be returned to the client application together with an access token unless they are marked as hidden. For example, if you set one extra property as follows:

request.Properties = new Property[] {
new Property("example_parameter", "example_value")
};

The property will be contained in the final response from the authorization server as follows:

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}

The above example is an excerpt from 5.1. Successful Response in RFC 6749.

Keys listed below should not be used and they would be ignored on Authlete side even if they were used. It's because they are reserved in RFC 6749 and OpenID Connect Core 1.0.

  • access_token
  • token_type
  • expires_in
  • refresh_token
  • scope
  • error
  • error_description
  • error_uri
  • id_token

Note that there is an upper limit on the total size of extra properties. On Authlete side, the properties will be (1) converted to a multidimensional string array, (2) converted to JSON, (3) encrypted by AES/CBC/PKCS5Padding, (4) encoded by base64url, and then stored into the database. The length of the resultant string must not exceed 65,535 in bytes. This is the upper limit, but we think it is big enough.

You can know extra properties associated with an access token by calling Authlete's /api/auth/introspection API.

◆ Scopes

string [] Scopes
getset

Scopes that should be associated with an authorization code and/or an access token. If null (the default value) is set, the scopes specified in the original authorization request from the client application are used. In other cases, the scopes set to this property will replace the original scopes contained in the original request. This request parameter is optional.

Even scopes that are not included in the original authorization request can be specified. However, as an exception, "openid" scope is ignored on Authlete side if it is not included in the original request (to be exact, if "openid" was not included in the parameters request parameter of the request to /api/auth/authorization API). It is because the existence of the "openid" scope considerably changes the validation steps and because adding "openid" triggers generation of an ID token (although the client application has not requested it) and the behavior is a major violation against the specification.

If you add the "offline_access" scope although it is not included in the original request, keep in mind that the specification requires explicit consent from the end-user for the scope (11. Offline Access of OpenID Connect Core 1.0). When "offline_access" is included in the original authorization request, the current implementation of Authlete's /api/auth/authorization API checks whether the authorization request has come along with the "prompt" request parameter and its value includes "consent". However, note that the implementation of Authlete's /api/auth/authorization/issue API does not perform the same validation even if the "offline_access" scope is newly added via this Scopes property.

◆ Sub

string Sub
getset

The value of the "sub" claim used in the ID token which is to be issued. If this property returns null or its value is empty, the value of the Subject property is used as the value of the "sub" claim. The main purpose of this Sub property is to hide the actual value of the subject from client applications.

Note that the value of the Subject property is used as the value of the subject associated with the access token regardless of whether this Sub property holds a non-empty value or not.

◆ Subject

string Subject
getset

The subject (= unique identifier) of the end-user who has granted authorization to the client application. This request parameter is required unless the authorization request has come with response_type=none (which means the cient application did not request any token to be returned). See 4. None Response Type of OAuth 2.0 Multiple Response Type Encoding Practices for details about response_type=none.

This property is used as the value of the subject associated with the access token (if one is issued) and as the value of the "sub" claim in the ID token (if one is issued).

Note that, if the Sub property returns a non-empty value, it is used as the value of the "sub" claim in the ID token. However, even in such a case, the value of the subject associated with the access token is still the value of this Subject property.

◆ Ticket

string Ticket
getset

The ticket issued by Authlete's /api/auth/authorization API to the authorization server implementation. It is the value returned from AuthorizationResponse.Ticket. The ticket is necessary to call Authlete's /api/auth/authorization/issue API. This request parameter is mandatory.


The documentation for this class was generated from the following file:
Authlete.Dto.BackchannelAuthenticationIssueAction.OK
@ OK
The implementation of the backchannel authentication endpoint should return a 200 OK response to the ...