保护Web服务
介绍
保护REST端点是任何平台的一个重要安全方面,特别是那些可以从公共Internet访问的平台。
在RapidMiner平台部署中,REST端点可以用于许多事情,从管理执行和调度到运行作为web服务公开的RapidMiner进程。出于向后兼容性的原因,我们支持启用HTTP基本身份验证(即在调用REST端点时发送未加密的用户名和密码),但推荐的身份验证方案是HTTP承载身份验证(使用访问令牌)。如果您从旧版本迁移,并且已经嵌入了无法轻松更改所使用的身份验证方案的web服务,请按照我们的升级和迁移指南关于如何启用遗留基本身份验证。
RapidMiner平台部署的组件使用标准的OAuth2/OpenID Connect方案进行认证和授权。在此方案中,在交互式认证(例如通过提供用户名和密码)之后,生成访问令牌和刷新令牌。访问令牌通常是短期的,当它过期时,您可以通过使用刷新令牌从我们的身份提供程序组件获得一个新的。你可以在我们的安全概述.
在机器对机器通信的情况下,例如当从另一个应用程序调用RapidMiner Server提供的web服务时,交互式用户身份验证是不可能的。然而,如上所述,尽管我们出于向后兼容性的原因提供了遗留的基本身份验证,但从安全的角度来看,最好的方法是在这些系统之间实现基于令牌的身份验证方案。
我们的KeyCloak组件使用脱机访问令牌来解决这个问题。脱机访问令牌有自己的过期设置,它们的有效期比常规访问令牌长得多。在本页中,我们将指导您完成生成令牌所需的步骤,以便使用基于令牌的身份验证在应用程序中嵌入web服务。
用户分离
访问令牌允许令牌的持有者执行令牌“所有者”授权执行的任何操作。这就是访问令牌存在时间较短的原因,以便最大限度地减少恶意行为者获得此令牌后可能造成的潜在影响。
脱机访问令牌的寿命更长,从而增加了上述风险。这就是为什么我们建议在平台中创建单独的用户,其唯一目的是提供对所需web服务端点的访问。这些用户将只能访问使用web服务所需的内容,并且他们将拥有offline_access
的角色。这个角色允许用户指示KeyCloak为脱机访问发出令牌。
在我们的部署模板中,我们预先配置了一个名为webservice-user
它具有所需的身份验证和授权配置。可将该用户作为模板使用发放新用户在平台上为此目的。
的webservice-user
没有设置密码。要使用它,首先必须设置密码。更多信息请访问管理用户、组和角色页面。
获取令牌并将其嵌入到客户端应用程序中
首先,如上所述,你应该创建用户在表示web服务消费者的平台中。
要确保该用户在所有后端组件中可用,请使用新创建的用户登录,然后单击执行和时间表在着陆页.
接下来,将浏览器指向https://your-platform-deployment/get-token/
打开令牌生成器.您将看到一个新生成的刷新令牌,以及一些示例,说明如何将其交换为访问令牌,然后如何在HTTP REST端点调用中使用它来执行成功的承载身份验证。
为了确保一切正常,请再次检查代表web服务使用者的用户是否可以访问RapidMiner进程它实现了所讨论的web服务。
微调令牌过期
如上所述,脱机令牌比常规访问令牌的寿命更长,因此它们可以轻松地用于机器对机器通信。中单独的配置参数控制它们的过期时间身份及保安.
在我们的默认配置中,离线令牌在不活动1个月后到期,无论使用情况如何,总期限为1年。这意味着您必须每月至少使用一次令牌,并使用上述过程每年生成一个新令牌并将其嵌入到您的客户端中。
以上参数可通过登录进行调整身份及保安,并在域设置页,单击令牌选项卡。的离线会话空闲和离线会话最大值参数控制上述过期时间。如果需要,您可以通过设置,将离线令牌设置为永不过期离线会话上限有限公司来从.