Otentikasi berbasis Token JWT di Azure Active Directory

saya mendapatkan Kesalahan di bawah ini di startup.css saat mengautentikasi token yang dikeluarkan oleh Azure Active Directory

JwtBearerAppBuilderExtensions.UseJwtBearerAuthentication(IA‌​pplicationBuilder, JwtBearerOptions)' sudah usang: 'Lihat go.microsoft.com/fwlink/?linkid=845470';

Dan kode saya adalah

 app.UseJwtBearerAuthentication(new JwtBearerOptions
            {
                AutomaticAuthenticate = true,
                AutomaticChallenge = true,
                Authority = String.Format(Configuration["AzureAd:AadInstance"], Configuration["AzureAD:Tenant"]),
                Audience = Configuration["AzureAd:Audience"],
            });

Adakah saran, saya baru mengenal Azure dan API web? Terima kasih


person ashish jayara    schedule 27.11.2017    source sumber
comment
Apakah Anda membaca tautannya: github.com/aspnet/Security/issues/1310? Otentikasi sedikit berubah di 2.0, Cara mendefinisikan middleware otentikasi sekarang sudah usang.   -  person juunas    schedule 27.11.2017
comment
Hai @juunas Terima kasih atas balasannya, ya, saya sudah memeriksa tautan ini tetapi tidak tahu cara mengatasi masalah saya. Jika Anda memiliki kode atau info lebih lanjut, itu akan sangat membantu.   -  person ashish jayara    schedule 27.11.2017


Jawaban (2)


Gunakan paket nuget Microsoft.Owin.Security.ActiveDirectory sebagai gantinya:

app.UseWindowsAzureActiveDirectoryBearerAuthentication(new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
    TokenValidationParameters = new TokenValidationParameters
    {
        ValidAudience = ConfigurationManager.AppSettings["AzureAd:Audience"]
    },
    Tenant = ConfigurationManager.AppSettings["AzureAd:AADInstance"]
});
person peco    schedule 28.11.2017
comment
Terima kasih atas balasannya ..Wot namespace yang harus saya gunakan untuk menggunakan UseWindowsAzureActiveDirectoryBearerAuthentication. saya mendapatkan kesalahan iapplicationbuilder tidak mengandung definisi untuk UseWindowsAzureActiveDirectoryBearerAuthentication - person ashish jayara; 29.11.2017
comment
Anda perlu menginstal paket Microsoft.Owin.Security.ActiveDirectory nuget. Metode ekstensi pada IAppBuilder ada di dalam kelas WindowsAzureActiveDirectoryBearerAuthenticationExtensions. - person peco; 29.11.2017
comment
Bagaimana kabarnya @ashishjayara? - person peco; 30.11.2017
comment
Hai ..Maaf atas balasan yang terlambat, saya melakukan hal yang sama dan berhasil tetapi sekarang memberikan kesalahan lain pada TokenValidationParameters Katanya diklaim berada di System.Identitymodel.Tokens.jwt tetapi tidak dapat ditemukan @peco - person ashish jayara; 30.11.2017
comment
Saya tidak yakin saya mengerti tetapi Anda dapat mengaktifkan logging untuk ADAL. Jawaban ini membantu saya sekali stackoverflow.com/a/33272736/1157185 - person peco; 30.11.2017
comment
Saya benar-benar kesal tetapi tidak mendapatkan apa-apa. Yang saya dapatkan hanyalah kode Core API 1.1 yang sudah saya miliki, saya terjebak dengan core API 2.0 @peco - person ashish jayara; 01.12.2017

dan dengan kode di bawah ini saya membuatnya berfungsi sekarang..Terima kasih

 public void ConfigureServices(IServiceCollection services)
        {

            services.AddAuthentication(options =>
            {
                options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
            })
          .AddJwtBearer(jwtOptions =>
          {
              jwtOptions.Authority = String.Format(Configuration["Logging:AzureAd:AadInstance"], Configuration["Logging:AzureAD:Tenant"]);
              jwtOptions.Audience = Configuration["Logging:AzureAd:Audience"];
              jwtOptions.Events = new JwtBearerEvents
              {
                  OnAuthenticationFailed = AuthenticationFailed
              };
          });

            services.AddMvc();
        }

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {

            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            app.UseAuthentication();
            app.UseMvc();
        }

        private Task AuthenticationFailed(AuthenticationFailedContext arg)
        {
            // For debugging purposes only!
            var s = $"AuthenticationFailed: {arg.Exception.Message}";
            arg.Response.ContentLength = s.Length;
            arg.Response.Body.Write(Encoding.UTF8.GetBytes(s), 0, s.Length);
            return Task.FromResult(0);
        }
person ashish jayara    schedule 01.12.2017