I have a website running on ASP.NET MVC 4.5.2. I have an IdentityServer4 server running but when I try and authenticate against it I get an:
invalid_request
I googled a bit but I can’t find a solution. Finally, I found the way.
First, in your IdentityServer4 you have to create a new client:
public static IEnumerable GetClients() { return new List<client> { new Client { ClientId = "yourid", AllowedScopes = new List<string> { "openid" }, AllowedGrantTypes = GrantTypes.Hybrid, RedirectUris = new List { "https://yoururl/signin-oidc" }, } } }
When you added the new client, you can update your other MVC project. Under App_Start open Startup.Auth.cs and add this code:
using Microsoft.Owin.Security.Cookies; using Microsoft.Owin.Security.OpenIdConnect; using Owin; namespace PSC { public partial class Startup { public void ConfigureAuth(IAppBuilder app) { app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = "Cookies" }); app.UseOpenIdConnectAuthentication( new OpenIdConnectAuthenticationOptions { Authority = "https://yourIdentityServerUrl", ClientId = "yourid", ResponseType = "id_token code", SignInAsAuthenticationType = "Cookies", RedirectUri = "https://yoururl/signin-oidc", Scope = "openid", }); } } }
You have to add a Nuget package called Microsoft.Owin.Security.OpenIdConnect.
Happy coding!