web-dev-qa-db-ja.com

IdentityServer4の実行に関する問題

IdentityServer4について学習しています https://identityserver4.readthedocs.io/en/release/quickstarts/0_overview.html 動作させるのに問題があるようです。

プロジェクトのAPIセクションを作成し、それに応じて構成した後:

public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
            {
                Authority = "http://localhost:5000",
                RequireHttpsMetadata = false,

                ApiName = "api1"
            });

            app.UseMvc();
        }

次のエラーが発生します。

'IApplicationBuilder' does not contain a definition for 'UseIdentityServerAuthentication' and no extension method 'UseIdentityServerAuthentication' accepting a first argument of type 'IApplicationBuilder' could be found (are you missing a using directive or an Assembly reference?)

ここで何が欠けているかに関するアドバイスはありますか?

編集1:パッケージがインストールされて存在していても名前空間を参照できないことに気づきました.

つまり.

using IdentityServer4.AccessTokenValidation;

または

using IdentityServer4;
11
Aeseir

更新/回答を提供するためだけに、IdentityServer4パッケージの後続のバージョンは正常に機能しました。

現在ID4 2.0パッケージを使用しています。

0
Aeseir

まあ、私はVisual Studio 2017を閉じて再び開いたところ、問題はなくなりました。おそらく、Visual StudioがIdentityServer4.AccessTokenValidationパッケージを最初にプルダウンすることを止め、プロジェクトを再度開くと、再試行が行われ、今回は成功しました。

20
Jeremy Cook

ネットコア1.1から2.0に移行する場合は、 Identity Server:API Migration to ASP.NET Core 2 の説明に従ってコードを移行する必要があります。

構成機能で

Before:
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
    Authority = "http://localhost:5000",
    RequireHttpsMetadata = false,
    ApiName = "apiApp"
});

After:
app.UseAuthentication();

ConfigureServices関数内

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = 
                               JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = 
                               JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(o =>
{
    o.Authority = "http://localhost:5000";
    o.Audience = "apiApp";
    o.RequireHttpsMetadata = false;
});
18
Che

this パッケージが必要です。そして名前空間IdentityServer4.AccessTokenValidation

10
Lutando

同じ問題があり、 IdentityServer 4 Quickstart Samples 、特に Javascript Client サンプルを使用して解決しました。

だから、これはそれがここで働いたものです:

  1. 依存関係のバージョンを確認してください。 。NET Core 2. で実行されているIdentityServerについて報告されている問題があります。私のAPIプロジェクトでは、Microsoft.Asp.NetCore.Allバージョン2.0.5およびIdentityServer4.AccessTokenValidationバージョン2.3.0。

  2. Startup.cs内で、Configureメソッドに以下を追加します。app.UseAuthentication(); example で使用されているため。

  3. 最後のステップは、 example のように、ConfigureServicesメソッドに認証を追加することです。

    public void ConfigureServices(IServiceCollection services)
    {
      services.AddMvcCore()
        .AddAuthorization()
        .AddJsonFormatters();
    
      services.AddAuthentication("Bearer")
        .AddIdentityServerAuthentication(options =>
        {
            options.Authority = "http://localhost:5000";
            options.RequireHttpsMetadata = false;
    
            options.ApiName = "api1";
        });
     }
    

そして、それは私の場合解決しました。うまくいけば、それもあなたのために機能します、それがどうなるか私に知らせてください。

ハッピーコーディング。

4
RobertoAllende