我正在研究允许您连接到 Azure 存储的电源组件框架 (PCF) 控件。该控件稍后将绑定到一个表单,我正在使用Azure Storage JS (for browser) v12连接到资源。
我的控件与 Azure 存储资源管理器的工作方式类似:我可以上传、下载文件并在容器内导航。
我担心解决方案的安全性,主要是与存储的连接。建议的方法(在库中)是将 SAS 令牌公开给存储帐户,然后传递容器名称以连接到特定容器。
// Create a new BlobServiceClient
const blobServiceClient = new BlobServiceClient(blobSasUrl);
// Create a unique name for the container by
// appending the current time to the file name
const containerName = "container" + new Date().getTime();
// Get a container client from the BlobServiceClient
const containerClient = blobServiceClient.getContainerClient(containerName);
由于 PCF 控件嵌入在 Dynamics 中的实体表单中,因此您可能会在调试器中停止代码执行并更改容器的名称。突然之间,您可以加载到与预期完全不同的容器中。
现在,这显然很糟糕,我希望有一个更安全的解决方案。
我的想法是将 Azure 存储操作移至某个后端,并在控件内对服务进行 API 调用。但是,这仍然没有让它变得更好,因为我仍然需要知道表单中实体的上下文才能连接到正确的容器。例如,用户正在编辑帐户“john123”,因此他应该只能连接到容器“container-john123”。
我还想连接在容器内导航,所以有时我希望能够请求从 PCF 控件再次检索容器数据。
在 Dynamics 环境中有没有办法做到这一点?我对这个话题很陌生,我读过一些关于插件、工作流等的内容,但我不确定它们是否能够响应“重新加载”操作。