4

好的 寻求指导

我正在考虑设置一个中央身份验证和授权服务器,以便使用 DotNetOpenAuth 登录和访问我们的 Api。

到目前为止

OpenId -> Authentication
OAuth -> Authorization OK ...然后它变得一团糟。

OpenId 具有 OAuth 的扩展。(那么是否非常需要 Connect And Auth2.0!)
OpenId Connect 有点像 Auth2.0 ?

OAuth2.0 允许 Authentication
Hueinverse提到 OAuth2.0 有一个新的用户名和密码流程

用户名和密码流 - 用于用户信任客户端处理其凭据但客户端仍然不希望存储用户的用户名和密码的情况。此流程仅适用于用户和客户端之间存在高度信任的情况。

但是从谷歌提到的协议来看

OAuth 2.0 是适用于所有 Google API 的全新简化授权协议。OAuth 2.0 依靠 SSL 来保证安全性,而不是要求您的应用程序直接进行加密签名。此协议允许您的应用程序请求访问与用户的 Google 帐户关联的数据。

身份验证似乎没有被提及。

使用 DotnetOpenAuth 它使用其 OpenId 库进行 OAuth2.0 身份验证。

所以...有人可以帮我弄清楚 OpenId Connect 和 OAuth 2.0 的详细信息吗!!:)

提前致谢。

4

1 回答 1

0

OAuth 用于授权。OpenIDConnect 用于身份验证。

OpenIDConnect(不是 OpenID)建立在 OAuth2 之上。

在 OAuth 中,客户端会收到一个访问令牌,该令牌可用于访问服务器端资源(例如服务器 API)。拥有访问令牌并不意味着我们验证用户身份。它仅授予您对属于该用户的资源的访问权限。

在 OpenIDConnect 中,客户端会收到一个名为“ID Token”的类似令牌,它采用 JWT 形式。客户端可以通过它的数字签名验证这个令牌,并从这个 ID 令牌中获取用户 ID 信息。

OAuth 支持多种授权类型。您提到的一种是“密码授予类型”,授权服务器信任客户端应用程序并让它处理用户凭据(例如密码)。

更常见的授权类型是授权代码流,用户在授权服务器登录页面(授权端点)提交他/她的凭据。如果您有“使用您的 Google/Facebook 帐户登录”的经验,您应该更好地了解它是如何工作的。

于 2019-07-08T06:22:46.330 回答