如何在积水中添加多个微服务

时间:2018-04-25 13:46:32

标签: cumulocity

我们实施了一个在C8Y服务器上加载的应用程序:DM(设备管理)应用程序。 最终用户连接到与租户相关的C8Y服务器并选择DM应用程序。 DM应用程序由两部分组成:

  • 前端(html,javascript)
  • 后端(暴露休息api的Java弹簧启动)。后端与我们的定制物联网产品通信。

我们的DM应用程序的后端现在位于MZ,但可以在DMZ中托管。

enter image description here

问题描述:

DM应用程序的前端(javascript)无法与DM应用程序的后端部分通信,作为客户端安全要求:

  1. 不允许我们在DMZ中设置http代理。
  2. 不允许我们在javascript
  3. 中对其余的api用户(和pwd)进行硬编码

    解决方案(我的建议):

    当最终用户登录C8Y服务器时,我们认为C8Y服务器验证存储在C8Y数据库中的用户。 我们建议使用相同的用户凭据(身份验证) - 用于登录C8Y门户 - 来访问此rest api。 然后,DM应用程序的后端需要验证此rest api用户,通过这种方式,DM应用程序还可以通过单个登录来验证整个C8Y应用程序的用户。

    要实施此解决方案:

    1. 我们需要:
      • 在前端获取用户名/密码。
      • 或者我们需要前端的经过身份验证的令牌(如果有的话)。
    2. 我们需要知道C8Y用于从后端验证用户的API。
    3. 需要支持将此注册为微服务,其中C8Y负责认证。
    4. 问题:

      1. 您如何看待解决问题的建议?
      2. 此外,还有一项微服务已注册到该帐户,因此我们如何添加其他微服务。
      3. 如果不支持多个微服务,请建议我们努力让这个DM应用程序作为第二个微服务运行,因为这对我们的客户来说非常关键并且是一个阻碍问题。

1 个答案:

答案 0 :(得分:1)

请检查此(新)文件:http://www.cumulocity.com/guides/concepts/applications/。我希望能回答你的一些问题。

详细说明:

  • 是的,您可以注册多个微服务。
  • 身份验证由QuarkIoE自动处理,即请求send / service / yourMS由QuarkIoE身份验证,然后转发给微服务。

BR,Stefan