服务密钥¶
对于应用目录、客户端资源等功能,您可以实施服务密钥,这使应用程序可以使用服务密钥作为其凭据来访问服务实例。
SAP Mobile Services 服务密钥¶
以下服务支持服务密钥:
- 应用目录
- 客户端资源
- 客户端使用情况和反馈
- 推送通知
- 客户端设置
- 微应用
- 连接性
服务密钥提供以 API 密钥或 X.509 方式访问一组服务的权限。这意味着后端服务不需要用户凭据,但服务密钥限制为特定用例。例如,您可以使用服务密钥作为凭据允许应用程序发送推送通知,无需用户输入凭据,或者您可以启用后端服务来调用服务 API。
在 SAP 移动服务主控室 中配置提供者级别或应用程序级别的服务密钥。如果看不到某个功能的服务密钥标签, 则该选项不可用。订户级别和提供者级别的服务密钥分开进行管理。
-
订户级别 - 订户级别应用可以管理其自己的服务密钥。管理员只能查看/删除订户级别应用中存在的服务密钥,但也可以接受提供者服务密钥。订户用户无法在订户SAP 移动服务主控室中查看提供者服务密钥,但订户应用程序可以在运行时使用提供者服务密钥。
-
提供者级别 - 提供者级别应用只能接受提供者服务密钥。
API 密钥方式 对于使用相同验证凭据访问多个服务的用户,建议使用 API 密钥。您具有两个将 API 密钥发送到服务的选项,分别为使用 X-API-Key 标头或权限标头。有关详细信息,请参阅后续步骤。
X.509 密钥方式 X.509 密钥建议用于服务到服务的通信,使客户后端服务能够调用服务 API。有关详细信息,请参阅后续步骤。 我们有两个 X.509 密钥,一个是从包含 SAP 托管证书的 X.509 生成,另一个是从包含自管理证书的 X.509 生成。 功能标志可用于确定服务密钥在初始创建后是否在 SAP 移动服务主控室 中可见。行业最佳实践建议新服务密钥在创建时应可见,此后不再显示。这通过最小化某人恶意访问和使用服务密钥的风险来提供附加安全性。
当服务密钥是由 SAP 托管证书创建,或证书锁定设置为 true 时,请在 X.509 服务密钥过期之前通过创建新密钥来轮换它们。服务密钥过期后,会返回 403 Forbidden响应,并且无法调用该服务。用户无法从 XSUAA 获取令牌,没有令牌就无法访问服务。
要在不停机的情况下轮换证书,请使用新证书创建新的服务密钥,并在后端实施新的服务密钥。在后端配置新的服务密钥后,删除旧服务密钥。
配置 SAP Mobile Services 服务密钥¶
-
在 SAP 移动服务主控室 中,选择移动应用程序 > 本机/
MDK。 -
选择应用程序,导航到设置标签,然后选择连接性。
-
导航到服务密钥标签。
查看当前为服务实例配置的服务密钥列表。
属性 描述 类型 行按服务密钥凭据类型分组:API 密钥和 X.509。 别名 人工可读的服务密钥名称,长度为 1 到 64 个字符,可用作验证请求的用户名。也可在创建审计日志记录时使用。必需。 密钥属性 对于 API 密钥,用于访问服务实例的 URL。URL 已生成,但无法编辑。
对于包含 SAP 托管证书的 X.509,属性包括:- 密钥长度
- 有效期
- 开始日期
- 到期日期
- 证书
- 证书锁定
角色 已分配到此服务密钥的角色。必需。 操作 您可以删除服务密钥,但不能编辑服务密钥。要更改服务密钥,则必须将其删除,然后创建新的服务密钥。您可以查看 X.509 服务密钥的详细信息。 -
要配置新的服务密钥,请选择 。
-
在添加服务密钥中,配置服务密钥属性。
服务密钥属性
属性 描述 别名 输入人工可读的服务密钥名称,长度为 1 到 64 个字符,可用作验证请求的用户名。也可在创建审计日志记录时使用。必需。 角色 输入已分配到此服务密钥的角色。必需。 类型 从列表中选择 API 密钥、包含 SAP 托管证书的 X.509 或包含自管理证书的 X.509 来指定服务密钥类型。 类型:API 密钥 如果选择 API 密钥,API 密钥将在请求标头中发送并用作验证请求的密码。API 密钥和 URL 无法进行编辑。 类型:包含 SAP 托管证书的 X.509 如果选择 SAP 托管证书,请输入以下属性: - 密钥长度 - 以位为单位的密钥大小,例如 2048、4096。
- 有效期 - 包含 SAP 托管证书的 X.509 密钥的有效时长,例如 1 天、1 个月。
- 开始日期 - 有效期开始日期,格式为
YYYY-MM-DD HH:MM(UTC+<xxxx>)。 - 过期日期 - 有效期结束日期,格式为
YYYY-MM-DD HH:MM(UTC+<xxxx>)。
类型:包含自管理证书的 X.509 如果选择包含自管理证书的 X.509,请输入以下属性: - 证书 - 证书字符串以
-----BEGIN CERTIFICATE-----开头,以-----END CERTIFICATE-----结尾,内容采用标准 x.509 格式。请注意,每个客户端标识只能提供一次证书。 - 证书锁定 - 默认情况下,禁用此复选框,但用户可以根据需要选择启用。将其设置为 false 可以更轻松地进行凭据轮换:将传入证书的主题和颁发者 DN 与存储证书的主题和颁发者 DN 进行比较。如果匹配,并且证书是在存储颁发者日期当天或之后颁发,则接受该验证。将存储传入证书的颁发者日期以供未来验证尝试使用。
- 要查看证书信息,请选择 显示证书信息。它显示代码长度、开始日期、过期日期、公用名称、组织、组织单位、地点、州/省、国家/地区和电子邮件地址等详细信息。
-
选择确定保存。 随即显示新的 API 密钥、包含 SAP 托管证书的 X.509 或包含自管理证书的 X.509 访问令牌,以及一条消息,建议您使用复制按钮保存值。将值保存在安全位置后,再次选择确定。
-
新服务密钥随即添加到列表并屏蔽。
-
-
要复制证书,请选择 。
-
要查看证书信息,请选择 显示证书信息。它显示代码长度、开始日期、过期日期、公用名称、组织、组织单位、地点、州/省、国家/地区和电子邮件地址等详细信息。
-
要移除服务密钥,请选择 。
Note
由于您无法编辑服务密钥,必须删除服务密钥并配置新的服务密钥,以便更改服务密钥。
后续步骤¶
API 密钥方式 要将 API 密钥发送到服务,则可以使用 X-API-Key 标头或权限标头。
-
X-API-Key 标头
要进行验证,请在
X-API-Key标头中将 API 密钥与请求一起发送:X-API-Key: <API-Key> -
权限标头
要进行验证,请在权限标头中发送 API 密钥作为基本验证。
<Alias>为用户名,<API-Key>为密码。二者均需要冒号连接 (<Alias>:<API-Key>),且需要 Base64 编码。Authorization: Basic [Base64(<Alias>:<API-Key>)]
X.509 密钥方式 X.509 服务密钥的实施略有不同。在从 SAP 移动服务主控室 检索的 X.509 服务密钥属性中,uaa 属性提供了凭据,这些凭据由 XSUAA 生成,用于生成访问令牌;url 属性是 移动服务 功能的基本 URL。
客户后端服务使用 uaa、clientid、uaa.certurl、uaa.certificate 和 uaa.key 属性生成访问令牌,然后使用访问令牌访问 移动服务 功能的后端 API。
示例请求(基于 curl):
curl --cert cert.pem --key key.pem -XPOST {uaa.certurl}/oauth/token -d 'grant_type=client_credentials&{uaa.clientid}'
其中,cert.pem 包括 uaa.certificate 属性的值,而 key.pem 包括 uaa.key 属性的值。
Note
证书和密钥字符串包含新行转义序列 (\n),如果在 cert.pem 和 key.pem 中使用,则必须用操作系统的实际换行符替换。
访问令牌值可以从响应正文中的 access_token 属性中获取。访问 移动服务 功能的后端 API 时,需要包含访问令牌作为带有“Bearer”前缀的“权限”标头。
Authorization: Bearer <access_token>
SAP Data Custodian Key Management Service 集成¶
(受限可用性)某些客户可以选择在 Cloud Foundry 环境中管理自己的密钥,而不是让 SAP 管理它们。
与 SAP Data Custodian Key Management Service (DCKMS) 集成的 SAP Mobile Services 服务提供此选项。SAP Mobile Services 环境必须满足 SAP 批准的特定条件。批准后,客户需要执行一些操作才能登录。
有关详细信息,请参阅 SAP Note 3348581 - 面向 移动服务 的 SAP Data Custodian Key Management Service 集成(需要登录)。