1

我是 .Net Core WebAPI 身份验证的新手。我发现 OpenIddict 是一种易于使用的身份验证服务,但在我开始使用它之前,我注意到 GitHub 中有具有不同身份验证流程的示例。我找不到有关这些身份验证流程的任何文档,因此我想到了以下问题。如果有人可以提供有关该领域的见解,我将不胜感激。GitHub 网址:https ://github.com/openiddict/openiddict-core

  1. 为什么会有不同的流程..使用哪一个?我猜如果是这样的话,每个流程都适合不同的应用程序性质,

    一个。每个流程的优缺点是什么?

    湾。是否有任何最佳实践或指南可帮助确定适合该特定应用程序的正确选项(身份验证流程)?

提前致谢。

4

1 回答 1

4

为什么会有不同的流程..使用哪一个?

OpenIddict 是一个 OAuth2/OpenID Connect 服务器。因此,它实现了这两个规范定义的所有经典核心流程。

如您所见,每个流程都有不同的用例:

  • 当无头客户端应用程序需要访问其自己的资源时,将使用客户端凭据授权。此流程不涉及任何用户,这基本上是一个服务器到服务器的场景。

  • 资源所有者密码凭证授予是最简单的 OAuth2 流程:客户端应用程序使用用户的用户名和密码发送令牌请求,并取回访问令牌。此流程有时被视为“遗留”流程,不得由您自己管理的第三方应用程序使用(因为它是客户端知道用户凭据的唯一流程)。

  • 代码流是最复杂的 OAuth2/OpenID Connect 流,它使用重定向并允许创建同意页面,用户可以在其中决定是否要授予对客户端应用程序的访问权限,而无需与应用程序共享其凭据。

  • 隐式流程是一种简化的代码流程,适用于基于浏览器的应用程序。

有关更多信息,您可以阅读此博客文章: http: //kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-choosing-the-right-flows/

于 2017-09-04T12:59:57.257 回答