了解 OpenId Connect client_credentials 身份授予
Understanding OpenId Connect client_credentials grant in terms of identity
我无法理解 client_credentials 授予的身份。我已使用授权代码流通过 OpenId Connect 保护我的 Web 应用程序。这按预期工作,并且从授权服务器返回正确的访问和 ID 令牌。到目前为止一切顺利。
现在我有一些 public API,我想让我的客户访问。对这些 API 的访问是通过我们提供的不同客户端库完成的。
在许多示例中,client_credentials
流程用于提供 CLIENT_ID 和 CLIENT_SECRET 获取访问令牌。根据规范,此流程不涉及最终用户,因此不会返回身份令牌。
现在我有麻烦了,因为我不知道来电者的身份。我唯一能说的是访问令牌是有效的,但实际上这是如何完成的?
您如何知道使用此流程时哪个用户调用了您的服务?我是否必须保存从 user_account 到 client_id/client 秘密的映射并在我的 api 端点中查询以获取用户?我必须根据调用服务的身份做出一些访问决定。
如果那是真的,当我无法在该流程中获得 ID 令牌时,OpendId Connect 以这种方式为我提供了什么好处?使用简单的 Oauth2 client_credentials 流程执行此操作将导致相同的结果。
有人可以给我一些小费吗?
client_credentials
流程不适用于您想要识别最终用户的场景。事实上,client_credentials
授权类型在 OpenID Connect 中未定义。您应该按照您的建议依赖授权码授予。
我无法理解 client_credentials 授予的身份。我已使用授权代码流通过 OpenId Connect 保护我的 Web 应用程序。这按预期工作,并且从授权服务器返回正确的访问和 ID 令牌。到目前为止一切顺利。
现在我有一些 public API,我想让我的客户访问。对这些 API 的访问是通过我们提供的不同客户端库完成的。
在许多示例中,client_credentials
流程用于提供 CLIENT_ID 和 CLIENT_SECRET 获取访问令牌。根据规范,此流程不涉及最终用户,因此不会返回身份令牌。
现在我有麻烦了,因为我不知道来电者的身份。我唯一能说的是访问令牌是有效的,但实际上这是如何完成的?
您如何知道使用此流程时哪个用户调用了您的服务?我是否必须保存从 user_account 到 client_id/client 秘密的映射并在我的 api 端点中查询以获取用户?我必须根据调用服务的身份做出一些访问决定。
如果那是真的,当我无法在该流程中获得 ID 令牌时,OpendId Connect 以这种方式为我提供了什么好处?使用简单的 Oauth2 client_credentials 流程执行此操作将导致相同的结果。
有人可以给我一些小费吗?
client_credentials
流程不适用于您想要识别最终用户的场景。事实上,client_credentials
授权类型在 OpenID Connect 中未定义。您应该按照您的建议依赖授权码授予。