【问题标题】:DocumentDb REST Permissions and Resource TokensDocumentDb REST 权限和资源令牌
【发布时间】:2016-12-14 16:23:17
【问题描述】:

我正在尝试为整个集合创建只读权限。我的服务器检索用户和相关资源令牌的权限,将其发送到客户端(电话)应用程序,然后电话应用程序可以自行检索一些文档。

应该是直截了当的。

根据 Azure 文档中的 create a permission link,文档中这样说:

与权限关联的资源的完整可寻址路径。例如,dbs/ruJjAA==/colls/ruJjAM9UnAA=/。

但示例显示了这一点:

{
"id": "a_permission",
"permissionMode": "Read",
"resource": "dbs/volcanodb/colls/volcano1"
}

该示例显然是基于 ID 的,我的项目的其余部分也是如此。

FWIW,我对两者都进行了测试,如果您根据 id 创建权限(例如示例),则会收到禁止响应。

如果您使用完整资源创建权限,则它可以正常工作。

希望我一整天的整理工作对某人有所帮助。 :)

而且我知道如果我不将其作为问题实际发布,有人会屈服,所以这是我的问题:

这是文档中的错误,还是代码中的疏忽,未来的增强功能或在线证明我的菜鸟,因为我以某种方式做错了?

TIA。

【问题讨论】:

  • 是的好地方 - 我发现了同样的问题,我认为文档已经过时了,id 曾经可以工作,但肯定是很久以前的事了,我当时无法让它们工作玩它。从理论上讲,我认为 id 或 name 应该 工作。

标签: rest azure permissions azure-cosmosdb


【解决方案1】:

您需要提供完整路径,例如 dbs/volcanodb/colls/volcano1(使用 name/id 或 dbs/ruJjAA==/colls/ruJjAM9UnAA=/ 时没有尾部斜杠(使用自链接时带有尾部斜杠) . 简单地证明名称(例如volcano1)是行不通的,因为一个帐户中可以有多个volvo1 集合。这里有更多关于自链接的信息:https://azure.microsoft.com/en-us/blog/azure-documentdb-bids-fond-farewell-to-self-links/。

【讨论】:

  • 对不起,我的问题不清楚,咪咪。我正在传递完整路径,一种方法是使用自链接,另一种方法是使用所有 id(并且没有尾部斜杠)。我会再试一次以确定,但我认为这是一个错误。我检查了我的测试,自链接有一个斜杠,而 id 路径没有。
  • 好的,刚刚重试了我所有的测试代码。如果我使用资源 id 而不是 id,一切都会很好。是的,我仔细检查了尾随斜线业务,甚至尝试了有无。我想在某个地方提出问题,但我不知道代码的存储库在哪里。或者至少告诉某人。顺便说一句,我正在使用 REST 调用来完成所有这些工作。
  • 我可以跟进团队,看看我们是否可以复制。将在此处跟进调查结果/解释。
  • 你能发布你正在使用的确切请求吗? id 和 selflink 权限都为我们工作。
  • Mimi,感谢您的跟进,但我得出结论,我不能使用来自客户端的 REST 调用来解决我的问题(这是应用程序,而不是技术)。这意味着所有调用都需要从服务器进行,​​我可以在服务器上控制安全性,而无需向野外用户颁发权限。我放弃了所有代码和测试并继续前进。
猜你喜欢
  • 1970-01-01
  • 2017-11-09
  • 2019-05-23
  • 1970-01-01
  • 2018-11-19
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多