Asp.Net Web Api 使用 Owin 示例的安全性

Asp.Net Web Api security using Owin samples

我正在努力实施基于 OWIN 的身份验证和授权。 以下是我计划如何实施。

1) 具有匿名访问权限的基于前端的应用程序,用户可以通过该应用程序注册,它将在我们的数据库中等待批准。管理员用户将审查用户并批准他们提供必要的角色。 2) 如果 OWIN 授权服务器授权,这些用户可以通过传递凭据来使用我们的不同 api 以获取响应。 3) owin authentication/authorization 作为一项单独的服务,因此它可以被多个应用程序用于 authentication/authorization 并生成令牌。

我的问题是

1) 我的方向正确吗?这种方法行得通吗? 2) 是否有在单独的解决方案中构建这些应用程序的示例?

我看到的所有示例都使用默认模板和示例方法。请帮助我提供任何此类可用样本。

基本上,我认为您的方向是正确的。但是我不太了解您在用户注册后的工作流程。当用户注册并且他的数据存储在数据库中时,您已经应该为他提供登录(身份验证)的能力 - 向他发送一个带有一些基本声明的令牌(bearer/refresh)。同时,如果您需要限制经过身份验证的用户使用您的 API 的能力,那么您可以通过实施角色管理(授权)来实现。

请参阅 this guide 有关将授权服务器与资源服务器分离的信息。 link 可能看起来有点老,但提供了工作示例/对工作流程的理解。

此外,对于身份验证,我建议您坚持使用 Json Web 令牌,因为它们提供了一种通过声明传输经过身份验证的用户状态的好方法。参见 this link. and this guide