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:"; }