I'm trying to authenticate using an identity provider that has its token endpoint on /profile/oidc/token instead of the usual /oauth/token endpoint. Is there any way to customize this? I'm always getting an error when exchanging the code for an access token.
-
Something like this? services.AddAuthentication(options => { options.DefaultChallengeScheme = "CustomProvider"; }).AddOAuth("CustomProvider", options => { options.ClientId = Configuration["ClientId"]; options.ClientSecret = Configuration["ClientSecret"]; options.AuthorizationEndpoint = "<your custom authorization endpoint>"; options.TokenEndpoint = "<your custom token endpoint>"; });SoftwareDveloper– SoftwareDveloper2025-03-13 14:08:44 +00:00Commented Mar 13 at 14:08
Add a comment
|
1 Answer
You can override some of the URL's in AddOpenIDConnect by adding your own custom event handlers.
For example:
AddOpenIdConnect(options =>
{
...
options.Events.OnRedirectToIdentityProviderForSignOut = context =>
{
context.ProtocolMessage.IssuerAddress =
"https://localhost:7001/connect/endsession";
return Task.CompletedTask;
};
});
I did explain this in a bit more detail in a blog post about: IdentityServer In Docker Containers (part 4/4)