`
JerryWang_SAP
  • 浏览: 1025897 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

grant_type为client_credentials和password二者的区别

阅读更多

最近工作中需要使用到oauth,注意到oauth客户端的grant_type值可以指定为client_credentials和password两种,很好奇所以网上搜索了一下,发现stackoverflow上一个帖子:
https://stackoverflow.com/questions/34842895/difference-between-grant-type-client-credentials-and-grant-type-password-in-auth

这位网友注意到一个有趣的点:

grant_type=client_credentials时,请求的响应中不包含refresh_token:

而grant_type为password则包含refresh_token:

什么时候用client_credentials(客户端模式)作为grant_type?

下面这个网站有介绍:https://www.poken.com/api/authentication/oauth2/
例如Account creation这个API,从业务上说我们期望它可以通过一个未认证过的用户调用,因为在Account创建之前,不存在authenticated user,这种场景下用grant_type=credentails比较合适。

grant_type=password的情况下,请求access token时,需要在HTTP请求里加上client_id和client_secret两个参数。

grant_type = password

客户端需要用户的用户名和密码,然后将客户端自己的client_id和client_secret发送给认证服务器,换取access token. 适用于受信客户端,比如一种服务对应的移动客户端。

grant_type=client_credentials

帖子里举了一个例子,比如实现一个后台作业,调用API完成一些维护工作,这里面不涉及到采集终端用户的用户名和密码,所以用client_credentials比较合适,这种情况下拿Access Token只需要client_id和client_secret即可,不需要用user_id和password了。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

 

0
0
分享到:
评论

相关推荐

    微服务框架搭建 基于oauth2 认证中心服务

    #微服务框架认证授权中心 项目采用spring cloud、oauth2、spring security # 依赖环境 ...http://localhost:9001/auth/oauth/token?grant_type=client_credentials&client_id=test&client_secret=123456

    rack-oauth2:OAuth 2.0服务器和客户端库。 支持Bearer和MAC令牌类型

    机架-的oauth2 OAuth 2.0服务器和客户端库。 支持Bearer和MAC令牌类型。 OAuth 2.0授权框架(RFC 6749) ... 令牌请求(grant_type:'client_credentials','password','authorization_code'和'refresh_to

    linkshare:Linkshare API客户端(PHP)

    在您的配置中非常重要的是设置'grant_type'=>'password'-否则OAuth插件会将其设置为'client_credentials',而Linkshare将不知道这意味着什么。 您可以通过单击“显示键”按钮在此处找到您的client_id和client_...

    oauth2获取access_token1

    其中,grant_type=authorization_code 表示认证类型为授权码模式,code=Mt9NBd 是获取的授权码,client_id=UserManagement 是客户端的 ID,client_secret=user123 是客户端的密钥,redirect_uri=...

    spring-security-oauth2-client-generic-grant-type:spring-security-oauth2-client-generic-grant-type

    总结来说,Spring Security OAuth2 Client的Generic Grant Type功能为我们提供了一个强大的工具,以应对各种非标准或自定义的OAuth2授权需求。通过自定义认证提供者和客户端注册,我们可以灵活地扩展Spring Security...

    dailymotion-sdk-node:适用于Dailymotion API的Node.js SDK

    可以是数组,函数或字符串(以空格分隔)setCredentials(grant_type,凭据) 设置凭证参数grant_type : string ,可以是“ client_credentials”,“ authorization_code”或“ password” 凭证: object ,以下...

    OAuth2.0基本原理及应用

    在授权码模式中,客户端需要在A步提供response_type、client_id、redirect_uri和scope参数,C步的服务器回应包含code和state参数,D步客户端请求令牌需提供grant_type、code、redirect_uri、client_id,最后E步认证...

    Oauth2.0登录鉴权验证

    - `response_type`:必须参数,固定值为“code”。 - `redirect_uri`:必须参数,授权后要回调的URI。 - `scope`:可选参数,以空格分隔的权限列表。 - `state`:可选参数,用于保持请求和回调的状态,帮助防止...

    java版OAuth2.0实例后台Oracle数据表结构SQL

    - `authorized_grant_types`: 允许的授权类型,如"authorization_code","password","client_credentials"等。 - `web_server_redirect_uri`: 用于处理回调的重定向URI。 - `authorities`: 应用具有的角色或权限...

    京东 商家cs授权方式

    1. **客户端向授权服务器发送请求**,携带必要的参数,如`grant_type`、`client_id`、`client_secret`、`username`、`password`等。 2. **授权服务器验证这些参数的有效性**后,会返回一个包含访问令牌(`access_...

    SpringBoot实现OAuth2认证服务器.docx

    params.add("grant_type", "password"); params.add("username", "admin"); params.add("password", "admin"); params.add("scope", "scope1 scope2"); String response = restTemplate.withBasicAuth(...

    PyPI 官网下载 | oauth2client-4.1.1-py2.py3-none-any.whl

    - **授权管理**:oauth2client库提供了多种授权类型的处理,包括Authorization Code Grant、Implicit Grant、Resource Owner Password Credentials Grant以及Client Credentials Grant。 - **认证流程**:库支持...

    SpringCloudOauth2.md

    grant_type=authorization_code& code=AUTHORIZATION_CODE& redirect_uri=CALLBACK_URL ``` - **第四步**:授权服务器验证授权码有效性后,颁发访问令牌。 ```json { "access_token":"0e6d26f3 ``` 通过...

    oauth搭建过程.docx

    2. 客户端使用这些凭据向认证服务器发起请求,请求中包含grant_type(固定为password)、username和password。 3. 如果验证成功,认证服务器会返回访问令牌,客户端可以使用该令牌访问受保护的资源。 在实际搭建...

    使用Redis 存储AccessToken +使用MySQL 存储ClientDetails和UserDetails信息

    - `user_details`:存储用户信息,如username、password、email、enabled、account_non_expired、credentials_non_expired、account_non_locked、authorities。 3. OAuth2流程: - 客户端(Client)向授权服务器...

    Laravel开发-oauth2-client

    4. **授权流程**:OAuth2协议定义了几个授权流程,如授权码流程(Authorization Code Grant)、密码凭证流程(Resource Owner Password Credentials Grant)等。开发者需要根据实际需求选择合适的流程,并实现相应的...

    PHP环信注册

    'grant_type' => 'client_credentials', 'client_id' => $appId, 'client_secret' => $appKey ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_...

    Laravel开发-oauth2-server

    现在,我们需要实现认证端点,比如授权码(Authorization Code)和密码(Resource Owner Password Credentials)类型的授权流程。这些端点将处理用户授权、令牌颁发和刷新令牌等操作。在`routes/api.php`中定义这些...

    API接口设计 OAuth2.0认证

    3. 客户端凭证 Grant Type(Client Credentials):适用于客户端和服务提供商之间直接交互,不涉及用户身份的情况。 4. 密码凭证 Grant Type(Resource Owner Password Credentials):不推荐使用,因为涉及到用户...

Global site tag (gtag.js) - Google Analytics