令牌 Endpoint


layout: docs-default

令牌 Endpoint

程序可以调用令牌endpoint来请求和刷新令牌 (resource owner password credential flow, authorization code flow, client credentials flow 和自定义授权类型).

支持参数

请看 规格.

  • grant_type (必填)
    • authorization_code, client_credentials, password, refresh_token 或者自定义
  • scope (除了refresh_token and code,都必填)
  • redirect_uri (code grant type必填)
  • code ( code grant必填)
  • code_verifier (当使用proof keys时必填 - v2.5新增)
  • username ( password grant type必填)
  • password (password grant_type必填)
  • acr_values ( password grant type用来传送附加信息给用户服务)
    • 里面的值有指定格式:
      • idp:name_of_idp 跳过登陆/主页界面并直接把用户转到选择的第三方认证服务器(基于客户端配置)
      • tenant:name_of_tenant 用于把承租人名字转给用户服务
  • refresh_token (refresh token grant必填)
  • client_id (在post body里或者在basic authentication header)
  • client_secret (在post body里或者在basic authentication header)

认证

发到令牌endpoint的请求,必须已认证--或者通过基础认证里的客户端ID和密钥或者把客户端ID和密钥放在Post的body里。
如果放在基础认证的header里面,要求如下:

  • client_id:client_secret
  • Base64 转码
var clientId = "...";
var clientSecret = "...";

var encoding = Encoding.UTF8;
var credentials = string.Format("{0}:{1}", clientId, clientSecret);

var headerValue = Convert.ToBase64String(encoding.GetBytes(credentials));

例子

(方便阅读,已经去除了Form转码和增加换行)

POST /connect/token
Authorization: Basic abcxyz

grant_type=authorization_code&
code=hdh922&
redirect_uri=https://myapp.com/callback

你可能感兴趣的:(令牌 Endpoint)