diff --git a/README.md b/README.md index 47f8239..872c195 100644 --- a/README.md +++ b/README.md @@ -65,8 +65,14 @@ await webAssemblyHost await webAssemblyHost.RunAsync(); ``` - -5) Add a configuration file `wwwroot\appsettings.json` + +5) Configure the client and identity server as described in the [Configuration](#configuration) section. + +## Configuration + +### Client + +Add a configuration file `wwwroot\appsettings.json` > [!NOTE] > The Authorization Code Flow with Proof Key for Code Exchange (PKCE) is an authorization code flow to prevent CSRF and authorization code injection attacks and it is the only supported method. Use the configuration values as shown below. @@ -87,7 +93,33 @@ await webAssemblyHost.RunAsync(); } ``` -6) Use the following guides as reference for identity server configuration. +You can also configure the client when registering the service: + +```csharp +builder.Services.AddBlorcOpenIdConnect( + options => + { + options.ResponseType = "code"; + // ... + }); +``` + +See configuration sample code in the [demo app](src/Blorc.OpenIdConnect.DemoApp/Program.cs). + +--- + +Some of the configuration options are described in the following table: + +| Option | Description | +|--------|-------------| +| LoadUserInfo | Flag to control if additional identity data is loaded from the user info endpoint in order to populate the user's profile. | +| Resource | The `resource` parameter to send to the identity server. Useful when the identity server supports [RFC 8707](https://datatracker.ietf.org/doc/html/rfc8707). | +| ExtraQueryParams | Additional query string parameters to be including in the authorization request. | +| ExtraTokenParams | Additional parameters to be sent to the token endpoint. | + +### Identity server + +Use the following guides as reference for identity server configuration. - [Authorization Code flow with PKCE (Keycloak)](https://www.appsdeveloperblog.com/pkce-verification-in-authorization-code-grant/) - [PKCE Verification in Authorization Code Grant (Auth0)](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-proof-key-for-code-exchange-pkce) diff --git a/src/Blorc.OpenIdConnect.DemoApp/Program.cs b/src/Blorc.OpenIdConnect.DemoApp/Program.cs index 8ac98fb..fdeb756 100644 --- a/src/Blorc.OpenIdConnect.DemoApp/Program.cs +++ b/src/Blorc.OpenIdConnect.DemoApp/Program.cs @@ -54,7 +54,7 @@ { { "foo", "bar" } }; - // The extra parameters that will be sent to the token request + // The extra parameters that will be sent to the token endpoint options.ExtraTokenParams = new Dictionary { { "resource", "https://your-api.com" }