OAuth2 Dynamic Client Registration

rfc7591

client -> registration endpoint: client基于initial credential & client metadata,请求注册。

registration endpoint -> client: 校验成功后,为该client分配 client id, client secret 等。

client 可基于client secret 的 grant_type,向token endpoint请求 code/token/…,进而再向authorization endpoint请求token。

client registration request

initial credential:

  • initial access token: 在http Authorization Header的Bearer token。

  • software statement (JWT, sig/mac): 在http post body中。

client metadata

  • redirect_uris : 防attack redirect。

  • token_endpoint_auth_method: client_secret -> token endpoint的用法,例如HTTP POST/HTTP Basic。

  • grant_types: token endpoint可接受的client认证方式(authorization_code=code, implicit=token, password, …)。

  • response_types: authorization endpoint 可接受的client认证方式(code/token)。

  • jwks_uri: client的JWK Set所在uri。

  • jwks: client的JWK Set。

  • software_id: 标识client developer / software publisher的固定UUID。

client registration response

  • client_id: registration endpoint 动态分发。

  • client_secret

  • client_id_issued_at

  • client_secret_expires_at

client_id & client_secret 结合token_endpoint_auth_method & grant_types,可从token endpoint获得code/token。