如何在自定义 Twilio Flex 插件中保护外部 API 令牌?

问题描述 投票:0回答:1

我已经学习 Twilio Flex UI 插件开发大约一周了,我的目标是使用插件框架将我们的 CRM 软件集成到 Flex UI 中,因为不支持本机集成。得益于有用的 Twilio 文档,我对 Twilio CLI、构建插件和部署基本插件感觉很舒服。我现在想让我的简单插件使用 CRM 的 API 从 CRM 中提取数据。我知道您在使用 GitHub 进行部署时如何在 Flex 插件部署中传递机密(请参阅 Flex 项目模板项目),因为我已经成功部署了它,但我想使用 CLI 来部署插件。此外,我知道我不能只将 API 令牌存储在 Flex 配置对象中,因为它会暴露给客户端,如本问题/answer 中所述。解决方案是使用 JSON Web Token (JWT) 和 twilio-flex-token-validator,但这似乎适用于 Twilio 函数。这是否同样适用于外部 API,我只需要深入研究它,或者保护外部 API 令牌是否需要其他方法?

这个问题相关,但它适用于 Flex SSO 令牌,我不关心这一点。

如上所述,我在 Stack Overflow 上搜索了解决方案,但还没有好的想法可以尝试。

编辑:再次阅读 Twilio 文档后,我最终使用 Flex Configuration API 将 API 密钥存储为属性,按照 this 页面的最后部分。这与类似问题的answer中描述的过程相同。

security token twilio-flex twilio-cli
1个回答
0
投票

以下是我为了弄清楚如何从 Flex 插件安全地进行 API 调用而所做的事情。按照 https://www.twilio.com/docs/flex/developer/plugins/call-functions 中的步骤操作,并确保使用可以在 Flex 内部生成的 JWT 令牌来保护它。

在 Twilio 功能的后端,您可以向 CRM 发出 HTTP 请求。执行此操作时,请确保使用 JWT 保护请求。在您的 CRM 中,您可以对传入请求及其 JWT 进行身份验证。通过身份验证后,您可以将数据返回到您的函数,该函数可以发送到您的 Flex 实例。

我假设您可以访问 CRM 的底层代码,您可以将您的 Twilio 帐户 SID 存储在该服务器上,当您使用 JWT 发出 HTTP 请求时,您可以使用您的帐户 sid 对其进行签名。这是一个简单的“秘密”,可用作签名,因为您可以在 Twilio 端访问您的帐户 sid。

© www.soinside.com 2019 - 2024. All rights reserved.