identityserver4openid-connectduende-identity-server

Passing response_mode to challenge/redirect for external providers


using Duende i have some external providers configured (they actually come from a store). I noticed using Azure Active Directory the code returned through GET is causing a long url causing a 404 error.

I now want to change the response_mode to form_post instead of the default 'query' upon redirecting to the login url of Azure but it looks i cannot do that.

I tried adding the response_mode as Parameter in the AuthenticationProperties in the Challenge method but this does not work as I expected.

Can anyone suggest me how i can add response_mode (or custom parameters in general) when we are forwarded to the federated login pag?

EDIT: in fact, i was expecting a ResponseMode property on the duende OidcProvider but this is not the case? Is this missing or am i confused?

thanks a lot!


Solution

  • So the long url comes from several redirects on the microsoft side. Luckily Duende has a way of caching the state on the serverside to overcome the issue. So we cannot change the response_mode to form_post but we should just add this in startup.cs to enable the serverside caching of the state param

    services.AddOidcStateDataFormatterCache();
    

    https://docs.duendesoftware.com/identityserver/v6/ui/login/external/#state-url-length-and-isecuredataformat