1
1
Event Hub REST api不提供身份验证端点。您必须在服务器端为每个客户端(浏览器或设备)编写SAS令牌的生成代码(可能是AuthN/Z例程的一部分?)。提到 RedDog.ServiceBus nuget包为每个客户端的Event Hub生成SAS令牌。还有这个 article 在IoT上,解释了使用上述包对事件中心进行身份验证。 在我看来,我更愿意这样做,并排除#2和#3。它们(2&3)使解决方案容易受到攻击,违反了最佳实践。 |
2
1
考虑到Google Analytics和其他浏览器分析提供商提供的示例,我问题中的第二种选择是可以接受的。 也就是说,SAS令牌可以在“每个站点”(或“每个分析客户”)的基础上生成,并由跟踪该站点的所有浏览器共享。密钥的生成可以通过Sandrino Di Mattia等工具完成 Event Hubs Signature Generator 基于他的 RedDog Azure库。 这样,当发布者登录时,就可以生成一次令牌,并且不需要在线Web API端点始终可用。 |
3
0
作为另一种方法,您可以考虑使用Application Insights进行事件摄取。根据您正在进行的事件收集的类型,您可以使用它并使用内置的归档机制导出数据,也可以不时查询特定事件的端点。App Insights是为浏览器场景中的JS设计的,可以处理大量RPS+。您可以获得一些报告、分析、查询端点和其他一些有趣的功能。它提供了一个可以使用的SDK和JS库,并使用浏览器的本地存储为您实现了批处理。 作为补充说明,请将浏览器(以及在其上运行的任何其他JS代码)视为不安全的客户端。这意味着,即使您编写了一个机制来向您编写的服务器端应用程序请求SAS密钥,任何开发人员都可以在内存中拦截。因此,您可以做的最安全的事情是a)有一个服务器端代码,它生成一个短暂的SAS密钥,b)在调用此服务器端代码之前让您的客户端进行身份验证。或者,忽略该问题并过滤收到的无效事件。 GA和App Insights都通过公开公共密钥来工作。据我所知,Google Analytics使用试探法来过滤无效请求。我想App Insights也会这么做。 |
drewrockshard · 将密码与本地文件名匹配 6 年前 |
Bassie · 我的凭据存储在哪里? 6 年前 |
Marc · getAuthEntity失败“无法匹配预期类型” 6 年前 |