安全概览¶
计划 移动服务 架构时的一个必要元素是提供移动用户身份到后端系统的安全传播。该产品支持一系列常用的应用程序验证协议,并将其映射到后端系统。 此外,移动服务及其相关工具还提供各种保护静态数据和动态数据的方式。
过程¶
多个因子可以帮助您确定移动应用程序的最佳安全配置。最重要的因子是当前或计划架构体系结构。 安全架构包括应用程序验证、传输和会话安全以及数据保护和隐私。
高级别架构选项包括:
- 云 - 所有组件都在云基础架构上运行,无论是 SAP Business Technology Platform 单独还是与其他基础架构提供者一起。
- 混合 - 组件在 SAP Business Technology Platform 上运行,服务在 OnPremise 架构中运行。
移动服务 支持移动应用程序,并且每个应用程序都包括这些安全属性,可以在 SAP 移动服务主控室 中进行配置:
-
用户验证策略(也称为安全配置)定义用于验证用户的 HTTPS 协议,例如基本验证、SAML 2.0、OAuth 2.0 或 X.509 用户证书。有关支持的安全配置的详细信息,请参阅应用程序验证。
-
一个或多个后端 HTTP 端点(也称为应用 URL)定义经过验证的移动用户身份如何中继到后端系统。
对于使用 HTTPS 基本验证标头的简单验证,移动服务支持跨域身份管理系统 (SCIM) 协议。
SAP Gateway也使用 SCIM 服务器,通常这是用于混合云 SAP 环境的最简单、最安全的验证方法。
功能范围¶
| 功能 | 描述 |
|---|---|
| 验证用户 | 使用常用协议(如 OAuth、SAML 或基本验证)进行验证 |
| 传播用户身份 | 利用基本验证、应用程序到应用程序的 SSO、转发验证、SAP 云连接器 SSO 或 OAuth2 SAML 持有者断言转发用户验证 |
| 病毒扫描 | 扫描有害代码和数据的入站和出站流量 |
| 基于角色的访问 | 通过创建角色并将其分配到用户,保护您的应用程序 |
| 用户冻结 | 阻止特定用户进一步使用现有应用或访问新应用 |
| 用户锁定 | 阻止用户使用特定时间期间内未连接到移动服务的应用 |
| 数据擦除 | 请求删除特定时间期间内未连接的客户端的客户端数据 |
| 自动的用户移除 | 强制重新注册特定时间期间内未连接的客户端 |
| 跨站点请求伪造 (CSRF) 保护 | 保护用户免受 CSRF 攻击 |
| 加密的客户端数据 | 利用密码和生物识别保护应用中的数据 |
| 多架构支持 | 在混合云场景中,构建纯云解决方案或连接到企业预置后端 |
| Android SafetyNet 认证 | 通过检查设备的软件和硬件环境来保护服务器的 API,允许您确定服务器是否正在与正版应用和设备通信,然后您便可以决定是接受还是拒绝客户端的请求。 |
| 剪贴板保护 | 禁止将内容从一个应用程序复制、剪切和粘贴到另一个应用程序,同时仍然允许将内容从应用程序的一个屏幕复制、剪切和粘贴到同一应用程序的另一个屏幕(包括嵌入式浏览器上的屏幕)。 |
验证用户请求¶
对于所有需要验证的用户请求,将验证信息发送到 SAP Mobile Services。您在标头中提供的凭据取决于安全配置的类型。您还可以使用 OAuth 令牌或现有会话 cookie 来验证用户请求。
-
基本验证
用户名和密码对于指定的验证 URL 必须是有效的。
- HTTP 标头名称:
Authorization - HTTP 标头值:
Basic <base64 encoded form of username:password>
- HTTP 标头名称:
验证服务器应用程序请求¶
可以使用多种方法验证来自客户服务器应用程序的访问请求:
- 通过
mobile-approuter访问移动服务,受 OAuth 安全类型保护。客户服务器应用程序必须使用由mobile-approuter应用程序的xsuaa服务实例颁发的有效用户 OAuth 令牌。
客户服务器应用程序可能会从移动客户端应用程序接收令牌。
* 通过 mobile-approuter 访问移动服务,受基本安全类型保护。客户服务器应用程序可以使用有效的基本权限标头(用户名和密码)。
- 使用从
mobile-approuter应用程序的服务绑定中获取的服务 URL 直接访问移动服务。可以使用服务密钥验证。请注意,目前只有推送服务支持服务密钥。
会话 Cookie¶
作为 SAP Business Technology Platform 服务,移动服务 提供两个会话 cooki,用于维护移动应用客户端和 移动服务 之间的会话:
-
JSESSIONID- 用于保持与 移动服务 会话的会话 cookie。 -
__vcap_id__- 用于提供与 SAP Business Technology Platform Cloud Foundry 的关联性的会话 cookie。
通过 移动服务 访问后端服务器时,后端服务器还可能生成 cookie(会话或非会话)。移动服务 不会直接将后端服务器生成的 cookie 返回到客户端。
后端服务器会话 cookie 存储在 移动服务 中。收到同一后端服务器的后续请求后,移动服务 将加载存储的会话 cookie 并将其附加到已转发到后端服务器的请求。如果客户端在同一会话中向 移动服务 发送多个请求,后端服务器会话 cookie 将包括在所有后续请求中,即使客户端未接收到它们也是如此。
在 移动服务 中,每个后端服务器非会话 cookie 都将被包装为新 cookie。经包装的 cookie 将返回到客户端。客户端将该 cookie 值包括在后续请求中,然后 移动服务 对 cookie 进行解包,并在已转发到后端服务器的请求中附加原始 cookie。
经包装的 cookie 名称的格式为:cpmscf_proxy___SAPCPMS_<hash_value>
经包装的 cookie 的值是后端服务器返回的原始 cookie 的 Base64 编码值。
例如,以下 set-cookie 响应标头是经包装的 cookie:
set-cookie: cpmscf_proxy___SAPCPMS_669C30CF0569E4856F2A88A53197E3268AC5A985=eyJuYW1lIjoiQkFDS0VORF9DT09LSUUiLCJ2YWx1ZSI6IjEyMzQ1Njc4OSIsInBhdGgiOiIvIiwiZG9tYWluIjoicHJveHltb2NrLW1vYmlsZWRldi1wcm92aWRlci1pbnQtdGVzdC5jZmFwcHMuc2FwLmhhbmEub25kZW1hbmQuY29tIn0; Expires=Thu, 20 Nov 2025 12:06:04 GMT; Max-Age=99999999; Domain=test-app.cfapps.sap.hana.ondemand.com; Path=/