OAuth2.0学习(1-6)授权方式3-密码模式(Resource Owner Password Credentials Grant)
2017-06-02 17:44
302 查看
授权方式3-密码模式(Resource Owner Password Credentials Grant)
密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码。客户端使用这些信息,向"服务商提供商"索要授权。
在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码。这通常用在用户对客户端高度信任的情况下,比如客户端是操作系统的一部分,或者由一个著名公司出品。而认证服务器只有在其他授权模式无法执行的情况下,才能考虑使用这种模式。
它的步骤如下:
(A)用户向客户端提供用户名和密码。
(B)客户端将用户名和密码发给认证服务器,向后者请求令牌。
(C)认证服务器确认无误后,向客户端提供访问令牌。
B步骤中,客户端发出的HTTP请求,包含以下参数:
grant_type:表示授权类型,此处的值固定为"password",必选项。
username:表示用户名,必选项。
password:表示用户的密码,必选项。
scope:表示权限范围,可选项。
下面是一个例子。
C步骤中,认证服务器向客户端发送访问令牌,下面是一个例子。
整个过程中,客户端不得保存用户的密码。
密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码。客户端使用这些信息,向"服务商提供商"索要授权。
在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码。这通常用在用户对客户端高度信任的情况下,比如客户端是操作系统的一部分,或者由一个著名公司出品。而认证服务器只有在其他授权模式无法执行的情况下,才能考虑使用这种模式。
它的步骤如下:
(A)用户向客户端提供用户名和密码。
(B)客户端将用户名和密码发给认证服务器,向后者请求令牌。
(C)认证服务器确认无误后,向客户端提供访问令牌。
B步骤中,客户端发出的HTTP请求,包含以下参数:
grant_type:表示授权类型,此处的值固定为"password",必选项。
username:表示用户名,必选项。
password:表示用户的密码,必选项。
scope:表示权限范围,可选项。
下面是一个例子。
POST /token HTTP/1.1 Host: server.example.com Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW Content-Type: application/x-www-form-urlencoded grant_type=password&username=johndoe&password=A3ddj3w
C步骤中,认证服务器向客户端发送访问令牌,下面是一个例子。
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma: no-cache { "access_token":"2YotnFZFEjr1zCsicMWpAA", "token_type":"example", "expires_in":3600, "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", "example_parameter":"example_value" }
整个过程中,客户端不得保存用户的密码。
相关文章推荐
- 基于 IdentityServer3 实现 OAuth 2.0 授权服务【密码模式(Resource Owner Password Credentials)】
- OAuth密码模式说明(resource owner password credentials)
- NET Core实现OAuth2.0的ResourceOwnerPassword和ClientCredentials模式
- 基于OWIN WebAPI 使用OAuth授权服务【客户端验证授权(Resource Owner Password Credentials Grant)】
- ABP中使用OAuth2(Resource Owner Password Credentials Grant模式)
- OAuth2.0学习(1-4)授权方式1-授权码模式(authorization code)
- Laravel 5.1 + OAuth2 PasswordGrant(密码授权模式)
- OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)
- asp.net权限认证:OWIN实现OAuth 2.0 之密码模式(Resource Owner Password Credential)
- Oauth支持的5类 grant_type 及说明 authorization_code — 授权码模式(即先登录获取code,再获取token) password — 密码模式(将用户名,密码传
- OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)
- spring-oauth-server实践:授权方式四:client_credentials 模式下有效期内重复申请 access_token ?
- ASP.NET Core实现OAuth2.0的ResourceOwnerPassword和ClientCredentials模式
- spring-oauth-server实践:授权方式三:PASSWORD模式下 authorities:ROLE_{user.privillege}, ROLE_USER
- spring-oauth-server实践:使用授权方式四:client_credentials 模式下access_token做业务!!!
- Spring Boot整合oauth2.0搭建统一授权服务(密码模式)
- OAuth2.0学习(1-8) 授权方式五之Access_Token令牌过期更新
- OAuth2:客户端验证授权(Resource Owner Password)类型的开放授权
- OAuth2.0学习(1-9)新浪开放平台微博认证-web应用授权(授权码方式)
- spring-oauth-server实践:使用授权方式四:client_credentials 模式的客户端和服务端交互