5

我已经阅读了很多关于如何在 Asp.Net Web Api 2 中实现完整的身份验证和授权系统的内容,其中包括注册、发送电子邮件确认、发布访问令牌和刷新令牌等。毕竟我已经成功完成了所有这些,但是,对于每个项目都必须这样做,这看起来是不必要的。

我仍然不确定,但我相信“Thinktecture IdentityServer”是一个提供所有这些的包,对吗?

如果是的话,谁能告诉我(以一种非常直接的方式)我如何创建一个新的 Web Api 项目并使用这个包轻松获得上述所有功能?

4

2 回答 2

4

Thinktecture 身份服务器 v3 是高度可配置的模块的集合,因此需要编写大量代码来设置您想要的方式。Thinktecture wiki 有一个很好的“hello world”示例,可能足以让您继续前进:

你好世界

之后,下载示例,找到与您的情况最匹配的示例,然后在此基础上进行构建。特别是,您需要建立一个数据库来保存您的注册用户。相关的“MembershipReboot”项目通常是您用来进行数据访问的项目,以及将使用 EntityFramework 自动创建数据库的“MembershipReboot.Ef”插件。

MembershipReboot 是您设置要使用的电子邮件事件的地方。

会员重新启动中的电子邮件配置

于 2015-07-27T21:54:21.617 回答
2

这是要使用您单独设置的identityServer3:

(IdentityServer3 有一些开箱即用的服务器设置示例,可能对您来说已经足够好,或者可能只需要稍微配置)

Nuget Microsoft OpenID Connect(我认为它的名称为:Microsoft.Owin.Security.OpenIdConnect)

将 OpenID Connect 中间件(也在 Startup.cs 中)指向 IdentityServer。

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
    Authority = "https://myIdsrv3Path/identity",
    ClientId = "myapi",
    RedirectUri = "https://myIdsrv3Path/", // or 
    ResponseType = "id_token",

    SignInAsAuthenticationType = "Cookies"
});

在 IdentityServer3 中,将接受的客户端设置为包含“myapi”,以及您需要的声明。

还有更多关于授权的解释,但这回答了您保护 api 的基本问题。


请参阅 IdentityServer3 文档: https ://identityserver.github.io/Documentation/docsv2/overview/mvcGettingStarted.html

向下滚动到名为:添加和配置 OpenID Connect 身份验证中间件的部分。

于 2015-11-11T09:46:12.273 回答