如何使用 Client ID 和 Secret 对 API 调用者进行身份验证

How to authenticate API caller using Client ID and Secret

我已经在 API 注册了客户端应用程序,他们给了我一个客户端 ID 和一个密码。有时我必须包含我的客户端 ID 才能启动此 API 的使用。例如 Azure AD。

但是client Secret具体是怎么使用的呢?他们是否像 user/password 组合一样比较我的客户端 ID 和密码?或者是用于加密调用的客户端密钥还是仅包含一个哈希值?

我已经阅读了几个 Oauth 和其他文档,但我还没有找到对此的解释。

PS:我正在尝试构建一个快速微服务,而我的其他服务希望在没有会话的情况下通过身份验证与其对话。想为其他服务采用 client/secret 模型,但我必须实施它。

任何解释或线索的TIA!

Client id 和 client secret 就像您项目的用户名和密码。

当您的项目需要交换授权码时,它会使用密钥来验证它实际上是它所说的客户端。

所以这样的命令通过将应用程序的客户端 ID 和客户端密码发送到授权服务器来交换授权代码,这样服务器就知道客户端就是它所说的客户端,因为它知道密码.

curl -s \
--request POST \
--data "code=4/1AY0e-g7BhBt0QU9f5HTgNDGNR1GYtH12q4xvgL_D2Q34A&client_id=XXXX.apps.googleusercontent.com&client_secret=zYAoXDam3mqsdwabh3dQ3NTh&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" \
https://accounts.google.com/o/oauth2/token 

Understanding Google OAuth 2.0 with curl