OIDC OAuth 2.0身份验证和授权

时间:2019-10-24 17:29:41

标签: rest oauth-2.0 openid-connect

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

例如:

注册客户端:client A (scope = email), client B (scope = address)

获取每个客户端的访问令牌(通过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