Aspnetcore: Considere dividir el paquete AzureAD para reducir las dependencias

Creado en 19 dic. 2018  ·  3Comentarios  ·  Fuente: dotnet/aspnetcore

Tengo un proyecto ligero de API web ASP.NET Core. No tiene interfaz y, por lo tanto, no necesita la mayor parte de lo que se incluye con el paquete Microsoft.AspNetCore.Mvc . Generalmente puedo usar el paquete Microsoft.AspNetCore.Mvc.Core lugar.

Excepto que necesito autenticación AAD, y cuando extraigo Microsoft.AspNetCore.Authentication.AzureAD.UI , toma Microsoft.AspNetCore.Mvc como dependencia ...

Al mirar el código, parece que se incluyen algunos controladores y vistas de Razor precompiladas , así que entiendo por qué necesita el paquete completo Mvc para admitirlos.

Sería genial si pudiera dividir la autenticación AAD central de los componentes de la interfaz de usuario, de modo que aquellos de nosotros que no necesitamos la interfaz de usuario no necesitemos depender del gran paquete Mvc. Algo como esto quizás:

  • Microsoft.AspNetCore.Authentication.AzureAD.UI

    • Microsoft.AspNetCore.Mvc

    • Microsoft.AspNetCore.Authentication.AzureAD.Core

    • Microsoft.AspNetCore.Authentication.Cookies

    • Microsoft.AspNetCore.Authentication.JwtBearer

    • Microsoft.AspNetCore.Authentication.OpenIdConnect

Gracias.

area-security feature-AADIntegration

Todos 3 comentarios

Cerrando porque no hay planes para realizar cambios en esto. La parte de la interfaz de usuario es la mayor parte de lo que hay en esta función, por lo que si lo dividimos, no quedaría casi nada.

@Eilon : sigue siendo útil sin las vistas de la interfaz de usuario para proyectos WebAPI. En el nuestro, tengo:

            services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
                .AddAzureAD(options => Configuration.Bind("AzureAd", options))
                .AddAzureADBearer(options => Configuration.Bind("AzureAd", options));

¿Cómo haría el equivalente sin el paquete Microsoft.AspNetCore.Authentication.AzureAD.UI ?

Para desbloquear a mi equipo, copié temporalmente la fuente localmente y eliminé los componentes de la interfaz de usuario. Funciona bien, pero ahora este código está fuera de banda para mantenimiento futuro. Sería bueno si se construyera de esta manera de forma natural.

@ mj1856 entendió, pero en este momento todavía no hay planes para esto debido a la falta general de demanda, por lo que la prioridad es demasiado baja.

¿Fue útil esta página
0 / 5 - 0 calificaciones