Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing a parameter to Identity Server 4 Login Page

I have a client application that is using IDSVR4 for authentication. I need to store the user's username(in a different process from the login through IDSVR) on the client in a session or whatevr other client-side data storage mech so the user doesn't have to enter the details everytime he logs in from that specific browser. How can i pass the username from the client to identity server?

like image 721
Noble Zirwa Hara Avatar asked Nov 18 '25 11:11

Noble Zirwa Hara


2 Answers

You can add the username to the request parameters. If you're using asp.net in the client, you may use the notification event RedirectToIdentityProvider then add your username to the ProtocolMessage. Something like this:

RedirectToIdentityProvider = context =>
{
    context.ProtocolMessage.Parameters['username'] = "John";
    return Task.CompletedTask;
}

Any value you add to the parameters will be accessible in IdentityServer through the IIdentityServerInteractionService method GetAuthorizationContextAsync

Like this, in your IdentityServer controller:

public async Task<IActionResult> Login(string returnUrl){
    var context = await _interaction.GetAuthorizationContextAsync(returnUrl);
    var username = context.Parameters['username'];
    ...
}
like image 148
Espen Medbø Avatar answered Nov 21 '25 08:11

Espen Medbø


You can pass custom parameter to the authorize endpoint , for code sample you can refer to my reply here .

If you are not using the OpenID Connect OWIN Middleware , you can directly put the custom parameter into the authorize request :

http://localhost:xxxx/account/login?returnUrl=/connect/authorize/callback?client_id=mvc2&redirect_uri=http%3A%2F%2Flocalhost%3A49459%2Fsignin-oidc&response_type=code%20id_token&scope=openid%20profile%20api1%20offline_access&response_mode=form_post&nonce=xxxx&state=xxxx

On identity server side you can parse returnUrl and easily get the parameter .

like image 29
Nan Yu Avatar answered Nov 21 '25 10:11

Nan Yu



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!