Authentication 我可以使用OAuth对受信任的客户端(移动应用)进行身份验证吗?
我知道OAuth2和OpenID Connect是如何工作的。但仍有一些困惑困扰着我 我们开发了自己的认证服务器、服务API和移动应用程序。因此,客户端应用程序是可信的,我们使用“密码”授权类型。应用程序用户存储库遵循auth server中的相同用户数据库 我们的客户通过用户名/密码登录应用程序。然后,应用程序将用户凭据提交给Auth Server令牌端点,该端点将向客户端返回(承载)访问令牌和ID令牌(JWT)。 ID令牌包含基本的用户信息,因此应用程序可以像“欢迎托尼·斯塔克!”一样欢迎用户。 访问令牌可用于访问API(例如更新用户配置文件) OAuth在设计上不是用于身份验证的工具。参考: 我的问题是 1) 如果客户端只对获取用户信息感兴趣,我们是否需要验证ID令牌的签名?还要注意,ID令牌通过https连接来自令牌端点 2) 让我们忘记ID令牌吧。如果客户端从身份验证服务器获得访问令牌,我们是否可以认为用户已通过身份验证检查(即登录成功)?这个流程非常类似于没有OAuth的简单密码登录 3) 客户端可以使用访问令牌访问受保护的API。如果没有访问令牌,客户端只能调用一些公共API。它是否等同于登录和不登录都可以做什么?似乎可以将访问令牌视为“登录会话cookie”Authentication 我可以使用OAuth对受信任的客户端(移动应用)进行身份验证吗?,authentication,oauth,oauth-2.0,openid-connect,Authentication,Oauth,Oauth 2.0,Openid Connect,我知道OAuth2和OpenID Connect是如何工作的。但仍有一些困惑困扰着我 我们开发了自己的认证服务器、服务API和移动应用程序。因此,客户端应用程序是可信的,我们使用“密码”授权类型。应用程序用户存储库遵循auth server中的相同用户数据库 我们的客户通过用户名/密码登录应用程序。然后,应用程序将用户凭据提交给Auth Server令牌端点,该端点将向客户端返回(承载)访问令牌和ID令牌(JWT)。 ID令牌包含基本的用户信息,因此应用程序可以像“欢迎托尼·斯塔克!”一样欢迎用
4) 我的案件中没有第三方参与。所有内容(客户端、身份验证服务器、服务API)均由同一组织开发和拥有。使用OAuth还有意义吗?通常,移动应用程序被视为公共客户端。除非你限制谁可以访问移动应用程序,否则它不能被认为是可信的,因为即使是你开发的应用程序,有人可能会在你的控制之外干扰它 此外,资源凭据授予类型通常不是一个好主意。 一件事是OpenID Connect规范需要授权代码、id令牌或混合流: 身份验证可以遵循以下三种路径之一:授权代码 流(response\u type=code)、隐式流(response\u type=id\u令牌 令牌或响应类型=id\u令牌),或混合流(使用其他 OAuth 2.0多响应类型中定义的响应类型值 编码实践[OAuth.Responses]) 其他一些原因: