My Notes: Working with OpenIddict Identity
https://documentation.openiddict.com/
Example Configuration Endpoint
https://demo.identity.io/.well-known/openid-configuration
{
"issuer": "https://demo.identity.io/",
"authorization_endpoint": "https://demo.identity.io/connect/authorize",
"token_endpoint": "https://demo.identity.io/connect/token",
"introspection_endpoint": "https://demo.identity.io/connect/introspect",
"end_session_endpoint": "https://demo.identity.io/connect/logout",
"userinfo_endpoint": "https://demo.identity.io/connect/userinfo",
"jwks_uri": "https://demo.identity.io/.well-known/jwks",
"grant_types_supported": [
"authorization_code",
"implicit",
"client_credentials",
"refresh_token"
],
"response_types_supported": [
"code",
"code id_token",
"code id_token token",
"code token"
],
"response_modes_supported": [
"form_post",
"fragment",
"query"
],
"scopes_supported": [
"openid",
"offline_access",
"email",
"profile",
"roles",
"licenseAppApi"
],
"claims_supported": [
"aud",
"exp",
"iat",
"iss",
"sub"
],
"id_token_signing_alg_values_supported": [
"RS256"
],
"code_challenge_methods_supported": [
"S256"
],
"subject_types_supported": [
"public"
],
"token_endpoint_auth_methods_supported": [
"client_secret_basic",
"client_secret_post"
],
"introspection_endpoint_auth_methods_supported": [
"client_secret_basic",
"client_secret_post"
],
"claims_parameter_supported": false,
"request_parameter_supported": false,
"request_uri_parameter_supported": false,
"authorization_response_iss_parameter_supported": true
}
PCKE Flow
POST FormData to get back Token Data
https://demo.identity.io/connect/token
Form Data Example:
grant_type=authorization_code&client_id={{client id}}&code_verifier={{verifier code}}&code={{auth code}}&redirect_uri=https%3A%2F%2Fdemo.myawesome-app.io%2Fauthorization
Prefix constants from Openiddict
ept: = Endpoint
gt: = Grant Type
rst: = Response Type
scp: = Scope
All Constants -> OpenIddictConstants.cs
public static class Prefixes
{
public const string Endpoint = "ept:";
public const string GrantType = "gt:";
public const string ResponseType = "rst:";
public const string Scope = "scp:";
}