我有一个REST应用,其中包含1个端点/ ebook
它具有3个与之关联的HTTP动词:获取(用于获取电子书详细信息),发布(用于添加电子书),删除(用于删除电子书)
获取电子书可供系统中的所有用户使用。 创建和删除电子书需要管理员权限。
我希望只有管理员访问权限的用户才能添加或删除电子书,换句话说,只有只读访问权限的用户应该不能添加或删除电子书。
我无法设置此级别的细粒度访问。通过我的设置,即使只有只读权限的用户也可以添加,删除电子书。
我已经配置了电子书应用程序,并将OKTA配置为授权服务器。我可以获取访问令牌来访问应用程序
所有用户都可以使用获取电子书,为此我在OKTA授权服务器中创建了范围电子书:read。 创建和删除电子书需要管理员权限,并且我已经为此创建了范围电子书:修改
我在OKTA中创建了两个用户应用程序。
我已将所需的用户/组分配给这些应用程序。
接下来,我在授权服务器中创建了2个访问策略
在“授权服务器”中,我仅添加了“范围”和“访问策略”,但没有涉及到诸如Claim等其他内容。
以下内容对我来说一直有效:
但是,以下内容不能正常工作:
是否有可能通过请求“ ebook:read”作用域来阻止ReaderApp创建/删除电子书。
Applications AdminApp和ReaderApp都使用相同的端点/ ebook。
对于ReaderApp,即使在使用范围保护了它们的情况下,也无法在该终结点中访问 post 和 delete 方法,但是它并不直接与终结点相关联是问题
我想我可能已经错过了一些非常基础的东西,但是由于我是OKTA的新手,所以我还无法弄清楚。
这是我必须在Ebook应用程序(资源服务器)本身中配置的东西,还是只能通过某些Authorization Server配置使用OKTA处理这种情况? 欢迎任何建议。
注意:在这篇文章中,为了清楚起见,我只提到了1个端点,其中很少有http动词,但是在我的实际应用中,有很多端点