如何将用户添加到apim网关并限制特定操作的用户



我已经创建了一个apim网关,现在我需要添加一些用户,他们只有对API做一些特定操作的权限,比如有些用户只有执行GET请求的权限,有些用户只有执行POST请求的权限等等。我该如何实现这一点?

基于角色的访问控制有助于实现这一点,请参阅以下URL 摘录

RBAC如何确定用户是否有权访问资源以下是RBAC用于确定您是否有权在管理平面上访问资源的高级步骤。这有助于了解您是否正在尝试解决访问问题。

用户(或服务主体)获取Azure资源管理器的令牌。

令牌包括用户的组成员身份(包括可传递的组成员资格)。

用户使用附加的令牌对Azure资源管理器进行REST API调用。

Azure资源管理器检索所有角色分配,并拒绝应用于正在执行操作的资源的分配。

Azure资源管理器缩小应用于此用户或其组的角色分配范围,并确定用户对此资源具有哪些角色。

Azure资源管理器确定API调用中的操作是否包含在此资源的用户角色中

如果用户没有在请求范围内执行操作的角色,则不会授予访问权限。否则,Azure资源管理器将检查是否应用拒绝分配。

如果应用拒绝分配,则访问被阻止。否则将授予访问权限。

APIM运行时部分不依赖于ARM RBAC。相反,APIM维护自己的用户数据库。您描述的场景可以通过将操作拆分为多个API并通过订阅控制对这些API的访问来实现。

所有这些都内置在APIM中,因此设置起来很简单,但维护起来可能很麻烦。如果是这种情况,那么您的下一个选择就是使用策略和策略表达式。看看choose策略,它允许您有条件地停止请求处理(return-response策略)。当然,这需要您能够完全根据请求中可用的内容做出授权决定,即路径、标头、用户id e.t.c.

在这种情况下,最好使用validate-jwt策略,因为它允许您在提供的身份中依赖一组有限的声明,而不是硬编码的用户ids/名称列表。但它确实要求您在每个请求中都有一个JWT令牌。

最新更新