我正在尝试找到一种方法来限制对应用程序中每个存储桶的访问。目的是防止用户访问“分配”到其他存储桶之外的其他存储桶。
简而言之,该应用程序为每个用户分配了一个存储桶,以在其中存储对象,而我想防止用户访问并非由其访问的存储桶。
我想一个请求可能看起来像这样:
curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate'
-X 'POST'
-H 'Content-Type: application/x-www-form-urlencoded'
-d '
client_id=obQDn8P0GanGFQha4ngKKVWcxwyvFAGE&
client_secret=eUruM8HRyc7BAQ1e&
grant_type=client_credentials&
scope=data:read&
# I'm thinking for some parameter like this
bucket=CLIEN_SPECIFIC_BUCKET_ID
'
答案 0 :(得分:0)
您应该实现自己的应用管理层,以管理对不同存储桶的用户权限-最佳做法是,用户不应接触应用级访问令牌来访问存储桶本身。
将Forge云存储到Forge应用程序而不是最终用户,因为它是开发平台,并且在开发人员/应用程序级别(而不是最终用户)上运行。
编辑:
对于Viewer,您可以使用AOP方法并在后端中设置代理,然后将身份验证委托给代理-您可以重定向Viewer以将请求发送到端点以检索资源,而后端可以依次验证和检索来自Forge服务的资源,这样您就不必向用户公开访问令牌。试试:
Autodesk.Viewing.endpoint.setEndpointAndApi('https://yourhostname/your/proxy/service/path')
您还可以在Viewer的请求中添加自定义标题,以针对您自己的应用进行身份验证:
Autodesk.Viewing.endpoint.HTTP_REQUEST_HEADERS = {}
您也可以将衍生产品下载到自己的存储中,然后从那里加载它们-有关详细信息,请参见here。