我非常年轻的MVC应用程序
我想创建一个向外部MVC应用程序提供身份的Web服务。
将ASP.NET Core Identity公开为服务的好处:
实际的应用代码更简单,与其身份问题脱钩
支持已建立的身份验证标准和模式可简化安全问题并建立信任
身份服务可以存在于单独的流程中
在多个应用中重复使用用户身份
这可能吗?我能做到的任何想法吗?
答案 0 :(得分:1)
这是可能的。
这就是我们这样做的方式。
我们使用IdentityServer4为客户端生成JWT令牌。我们创建了一个简单的MVC项目,该项目具有以下简单的启动文件,可以为您提供一个想法。
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer()
.AddSigningCredential(new X509Certificate2(Path.Combine(".", "cert", "token-cert.pfx"), "cert-password"))
.AddInMemoryApiResources(Config.GetApiResources())
.AddClientStore<CustomClientStore>();
string connectionString = Configuration.GetConnectionString("DefaultConnection");
// a data service to fetch user data from database
services.AddTransient<IUserDataMapper>(s => new UserDataMapper(connectionString));
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseIdentityServer();
app.Run(async (context) =>
{
await context.Response.WriteAsync("ACME Auth Token API v1.0");
});
}
找到IdentityServer4的详细说明