自己的认证和授权服务器ASP网络核心

时间:2018-07-11 10:03:01

标签: authentication asp.net-core

我想创建自己的本地身份验证服务器,但是我不知道该怎么做。

大多数文章都是关于OAuth,Identity4Server,google,facebook等身份验证的,但是我找不到关于自定义解决方案的任何文章。 MSDN在这个话题上也很差。

此刻我有这样的东西:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(o =>
            {
                o.MetadataAddress = "http://localhost:5000";
                o.Authority = "http://localhost:5000";
                o.Audience = "http://localhost:5001";
                o.RequireHttpsMetadata = false;
                o.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidIssuer = "http://localhost:5000",
                    ValidAudience = "http://loclhost:5001",
                };
            })
            ;

    }

我是否正确认为授权机构是我的IdentityServer的地址? 那为什么在我使用时:

    [HttpGet, Authorize, Route("/")]
    public async Task<IActionResult> Get()
    {
        return Content("You are autorized.");
    }

有任何请求发送到我的授权服务器吗?

我是否需要创建自己的身份验证方案,在其中将请求发布到我的身份验证服务器,还是JwtBearer AutheniticationScheme中有内置机制?

1 个答案:

答案 0 :(得分:0)

IdentityServer只是自定义解决方案的构建块。它有助于将所有中间件捆绑在一起,因此您不必从头开始。

如果您要编写自定义身份验证解决方案,我的建议是从IdentityServer开始并从那里对其进行自定义。