Can*_*nsu 9 security azure azure-cognitive-search
在Azure搜索中,我们可以为不同的搜索结果创建多个索引,我们有两种类型的api-key.一个用于管理,另一个用于查询.但是使用相同的api-key用户可以搜索所有索引.
在我的解决方案中,我需要设计一个系统,以便使用该系统的不同用户可以通过其优先级获得不同的结果.我认为这可以通过每个角色的专用索引来解决,但用户仍然可以查询其他索引.
我怎样才能确保每个用户只能搜索特定的索引.
开箱即用,无法限制特定索引的密钥用法.你需要自己做点什么.
其他可能性是创建不同的搜索服务帐户,然后在其中创建索引而不是拥有一个帐户.然后,您可以将用户的访问权限授予相应的搜索服务帐户.
UPDATE
根据您的评论,您实际上希望按用户的角色限制搜索结果(文档),即比索引更深一级.要实现此目的,您可以将此角色条件动态附加到搜索查询中OData Filter
.例如,假设您的索引具有每种角色类型(管理员,用户等)的布尔字段,并且用户搜索某些关键字.然后你可以做的是创建一个OData Filter $filter
检查这些条件的地方.所以你的搜索网址看起来像这样:
https://<search-service-name>.search.windows.net/indexes/<index-name>/docs?search=<search-string>&$filter=Administrator%20eq%20true
Run Code Online (Sandbox Code Playgroud)
这样,Search Service就可以进行所有过滤,您无需在代码中执行任何操作.
您可以在此处了解有关查询选项的更多信息:https://msdn.microsoft.com/en-us/library/azure/dn798927.aspx.
归档时间: |
|
查看次数: |
1031 次 |
最近记录: |