如何在Web中使用ThinkTecture IdentityServer 3 Api 2
How to use ThinkTecture IdentityServer 3 in Web Api 2
我已经阅读了很多有关如何在 Asp.Net Web Api 2 中实施完整身份验证和授权系统的信息,其中包括注册、发送电子邮件确认、颁发访问令牌和刷新令牌,等等。毕竟,我已经成功地完成了所有这些工作,但是,对于每个项目都必须这样做,这看起来是一个不必要的开销。
我仍然不确定,但我相信 "Thinktecture IdentityServer" 是一个组合在一起提供所有这些的软件包,对吗?
如果是,谁能告诉我(以非常直接的方式)如何创建一个新的 Web Api 项目并使用此包轻松获得上述所有功能?
Thinktecture 身份服务器 v3 是高度可配置模块的集合,因此需要编写大量代码来按照您的需要进行设置。 Thinktecture wiki 有一个很好的 'hello world' 示例,可能足以让您继续:
之后,下载示例,找到最符合您情况的示例,并以此为基础进行构建。特别是,您需要建立一个数据库来保存您的注册用户。相关的 'MembershipReboot' 项目通常是您用来进行数据访问的项目,还有 'MembershipReboot.Ef' 插件将使用 EntityFramework.
自动创建您的数据库
MembershipReboot 是您设置要使用的电子邮件事件的地方。
这里是使用您单独设置的 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 身份验证中间件的部分。
我已经阅读了很多有关如何在 Asp.Net Web Api 2 中实施完整身份验证和授权系统的信息,其中包括注册、发送电子邮件确认、颁发访问令牌和刷新令牌,等等。毕竟,我已经成功地完成了所有这些工作,但是,对于每个项目都必须这样做,这看起来是一个不必要的开销。
我仍然不确定,但我相信 "Thinktecture IdentityServer" 是一个组合在一起提供所有这些的软件包,对吗?
如果是,谁能告诉我(以非常直接的方式)如何创建一个新的 Web Api 项目并使用此包轻松获得上述所有功能?
Thinktecture 身份服务器 v3 是高度可配置模块的集合,因此需要编写大量代码来按照您的需要进行设置。 Thinktecture wiki 有一个很好的 'hello world' 示例,可能足以让您继续:
之后,下载示例,找到最符合您情况的示例,并以此为基础进行构建。特别是,您需要建立一个数据库来保存您的注册用户。相关的 'MembershipReboot' 项目通常是您用来进行数据访问的项目,还有 'MembershipReboot.Ef' 插件将使用 EntityFramework.
自动创建您的数据库MembershipReboot 是您设置要使用的电子邮件事件的地方。
这里是使用您单独设置的 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 身份验证中间件的部分。