11

ASP.NET MVC 4.5.2 で実行されている Web サイトがあります。IdentityServer4 サーバーを実行していますが、それに対して認証しようとすると、次のようになります。

invalid_request

ASP.NET Core MVC の場合、ドキュメントには次のものがあります。

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationScheme = "Cookies"
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
    AuthenticationScheme = "oidc",
    SignInScheme = "Cookies",

    Authority = "http://localhost:5000",
    RequireHttpsMetadata = false,

    ClientId = "mvc",
    SaveTokens = true
});

プロジェクト Microsoft.Owin.Security.OpenIdConnect に次の NuGet パッケージを含めています。私のコードは次のとおりです。

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = "Cookies"
        });
        app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
        {
            AuthenticationType = "oidc",
            SignInAsAuthenticationType = "Cookies",

            Authority = "http://localhost:5000",

            ClientId = "mvc",
        });

どうすれば正しく接続できますか?

4

1 に答える 1

11

OK、これでうまくいきました。

次の NuGet パッケージをソリューションMicrosoft.Owin.Security.OpenIdConnectに追加する必要があります。

私のStartup.Auth.cs含む

 public void ConfigureAuth(IAppBuilder app)
        {

            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = "Cookies"
            });

            app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
            {
                Authority = "http://localhost:5000", //ID Server
                ClientId = "demo",
                ResponseType = "id_token code",
                SignInAsAuthenticationType = "Cookies",
                RedirectUri = "http://localhost:51048/signin-oidc", //URL of website
                Scope = "openid",               
            });

        }

IdentityServer のクライアント構成は次のとおりです。

 public static IEnumerable<Client> GetClients()
        {
            return new List<Client> {
                new Client {
                    ClientId = "demo",
                    AllowedScopes = new List<string> { "openid"},
                    AllowedGrantTypes = GrantTypes.Hybrid,
                    RedirectUris = new List<string>{"http://localhost:51048/signin-oidc"},

                }
            };
        }
于 2016-09-29T13:15:10.227 に答える