如何生成 Azure table 授权令牌以在我的 javascript 文件中使用
How do I generate a Azure table authorization token to use in my javascript file
我想从我的 Javascript 文件调用我的 Azure 存储 table。
要求 -
1.密钥没有时间过期。
2. 只读权限
我不需要 SAS 令牌,因为它是基于时间的,所以我需要生成一个访问密钥或我可以通过这种有限的只读访问传递给 JS API 的东西。
但在我的 Azure 仪表板中工作时,我似乎无法弄清楚。在我的 table 下,我可以看到我的访问密钥和连接字符串。我还可以为我的 table 生成一个仅具有读取权限的访问策略。
不确定如何将两者结合起来...
如果解决方案需要满足这两个要求,我认为是不可能的。
访问策略只是在服务器端提供对服务级别 SAS 的额外控制级别,它也是基于时间的,它会过期。
如果你的情况是Blob和Queue存储,你可以使用RBAC来满足你的要求,注册一个AD App,在容器或队列的Access Control (IAM)
中添加一个Reader
角色,用AD App生成access token。即使这样,access token也会过期,但是AD App对Blob或Queue的权限不会过期,需要的时候你只需要用你的代码重新生成token即可。如果你想绝对永久,我想你现在可以使用存储密钥。
对于Table存储,目前不支持RBAC,我找到了反馈here ,你可以投票。可能以后会支持,到时候可以参考上面的步骤,逻辑应该差不多。
编辑:
上面的答案是针对绝对永久的要求(如你所说的密钥没有时间过期),如果你能接受非常远的过期time,就像@Jerry提到的,只是指定一个远期的到期时间,比如3000-11-13,我认为它可以正常工作。
我想从我的 Javascript 文件调用我的 Azure 存储 table。
要求 - 1.密钥没有时间过期。 2. 只读权限
我不需要 SAS 令牌,因为它是基于时间的,所以我需要生成一个访问密钥或我可以通过这种有限的只读访问传递给 JS API 的东西。
但在我的 Azure 仪表板中工作时,我似乎无法弄清楚。在我的 table 下,我可以看到我的访问密钥和连接字符串。我还可以为我的 table 生成一个仅具有读取权限的访问策略。
不确定如何将两者结合起来...
如果解决方案需要满足这两个要求,我认为是不可能的。
访问策略只是在服务器端提供对服务级别 SAS 的额外控制级别,它也是基于时间的,它会过期。
如果你的情况是Blob和Queue存储,你可以使用RBAC来满足你的要求,注册一个AD App,在容器或队列的Access Control (IAM)
中添加一个Reader
角色,用AD App生成access token。即使这样,access token也会过期,但是AD App对Blob或Queue的权限不会过期,需要的时候你只需要用你的代码重新生成token即可。如果你想绝对永久,我想你现在可以使用存储密钥。
对于Table存储,目前不支持RBAC,我找到了反馈here ,你可以投票。可能以后会支持,到时候可以参考上面的步骤,逻辑应该差不多。
编辑:
上面的答案是针对绝对永久的要求(如你所说的密钥没有时间过期),如果你能接受非常远的过期time,就像@Jerry提到的,只是指定一个远期的到期时间,比如3000-11-13,我认为它可以正常工作。