OIDC OAuth 2.0身份验证和授权

问题描述 投票:0回答:1

我们已使用2L身份验证类型在OIDC中注册了我们的APP。我们是否必须与消费者应用程序共享客户端ID和Secret才能访问我们的API?

我了解OAuth 2.0客户端凭据授予流程允许客户端使用其自己的凭据而不是模拟用户进行身份验证。

而且,由于许多消费者将访问我们的API,因此我们可以授权允许我们访问API的用户,而不是共享我们的客户端凭据。假设A和B都在OIDC中注册了他们的应用,那么OIDC中是否有任何ACL可以授予消费者A而非消费者B访问权限。

rest oauth-2.0 oidc
1个回答
0
投票

Oauth 2.0规范定义了概念scope,该概念用于表示访问令牌的授权。

因此,在Oauth 2.0中,您上面提到的“ ACL”由范围表示。当您在IdP注册一个客户时,必须指定该客户的范围,该范围是“我们可以授予消费者A而非消费者B的访问权限”。

您的API(资源服务器)将经过设计,以便端点将接受具有适当范围的访问令牌的请求。

例如:

注册:客户端A(范围=电子邮件),客户端B(范围=地址)

获取2个客户端的访问令牌(通过client_credential流):access_token_A,access_token_B

您的API:endpoint1-(由email范围授权)。因此,当您发送两个请求时,一个请求使用access_token_A,另一个请求使用access_token_B,则前一个请求将成功(适当的范围),而后一个请求将失败。

参考:

[https://www.oauth.com/oauth2-servers/the-resource-server/][1]

https://tools.ietf.org/html/rfc6749

© www.soinside.com 2019 - 2024. All rights reserved.