SAP BTP 介绍(7)- BTP的安全

文摘   2024-10-25 08:36   上海  

随着IT环境变得越来越复杂,安全性问题变得越来越重要。您的公司必须管理应用程序用户(业务用户)和平台用户(管理员、操作员等)。

您希望分配角色和授权,并使用SAP Cloud Identity Services构建一个集中的身份供应系统。所有使用或集成的API和接口也需要得到安全保障。

BTP的用户及授权管理

SAP业务技术平台(SAP BTP)区分了两种类型的用户:

平台用户:

通常是管理员或操作员(DevOps),他们使用云管理工具在SAP BTP上部署、管理和故障排除服务。

这些用户通常直接登录到SAP BTP控制台并在那里工作。

开发者也可以是平台用户,他们在Cloud Foundry空间中工作并使用服务。

业务用户:

使用部署在SAP BTP上的业务应用程序的用户。

例如,自定义应用程序的最终用户或订阅的应用程序或服务(如SAP Business Application Studio)的用户都是业务用户。

Platform Users on SAP BTP

SAP 业务技术平台(SAP BTP)在最高级别上组织为全局账户。一个全局账户反映了与 SAP 的合同,它可以包含多个目录和/或子账户,这些子账户向用户提供不同的应用程序和服务。

进一步的层级结构用于更好地组织工作。例如,如果在一个全局账户中有太多的子账户,您可以创建目录来对其进行结构化管理。

子账户最多可以有三个环境:Cloud Foundry、Kyma 或 ABAP 环境

这些环境允许您根据选择使用不同的方法和工具开发和管理业务应用程序。当然,在这些环境及其内容中,如运行时、服务实例等,也需要用户来进行访问和授权管理。

任何希望使用 SAP BTP 功能的人都必须通过角色被分配为具有特定授权的用户。

用户管理发生在从全局账户到子账户、目录以及环境的所有层级。在每个层级上,都需要一个管理员来管理该层级上的资源和用户。管理方式会根据您所在的层级有所不同。

SAP BTP 的层级结构

全局账户:

  1. 全局账户是SAP BTP的最顶层,它代表了与SAP签订的合同。
  2. 可以包含多个目录和/或子账户。
  3. 通常由企业级管理员进行管理。

目录:

  1. 目录用于对大量的子账户进行结构化管理。
  2. 有助于更好地组织和分类子账户。
  3. 由目录管理员进行管理。

子账户:

  1. 子账户是实际提供应用程序和服务的单位。
  2. 每个子账户可以有多个环境(Cloud Foundry、Kyma 或 ABAP 环境)。
  3. 由子账户管理员进行管理。

环境:

  1. Cloud Foundry:用于基于容器的应用程序开发和部署。
  2. Kyma:用于扩展SAP解决方案,并与其他云服务集成。
  3. ABAP 环境:用于传统的ABAP开发和运行。
  4. 每个环境都有其特定的管理员来管理其中的资源和用户。

User Management on SAP BTP

当客户与SAP签订合同时,会在全局账户级别创建一个用户。在这个级别上,定义了授权,包括分配实体和服务,以及账单信息。

全局账户管理员可以最初登录到SAP BTP来管理这些授权,并创建目录和子账户。

为了确保不止一名员工可以管理全局账户,管理员需要在全局账户级别创建其他用户,并为他们分配管理员权限。

通常,一个全局账户包含多个子账户。当全局账户管理员创建一个子账户时,他们会自动成为该子账户的管理员。子账户管理员可以管理授权、服务订阅,在子账户级别创建其他用户,并为用户分配角色。子账户管理员仅获得子账户的管理授权,而不是全局账户的管理授权。

子账户管理员还负责创建业务用户。

业务用户是使用部署在SAP BTP上的应用程序和服务(例如:SAP Business Application Studio)或通过SAP BTP提供的工具和服务创建的业务应用程序(SaaS)的消费者。

这些用户可以访问SAP BTP,但他们不能执行任何管理任务。如果业务用户只使用SAP BTP上的单个应用程序,他们不一定需要访问SAP BTP控制台(即子账户),而只需要访问该应用程序即可。在这种情况下,子账户管理员在子账户级别创建用户,并仅为该用户分配应用程序授权。

全局账户级别的用户管理和授权

  1. 初始用户创建:

当客户与SAP签订合同时,会创建一个全局账户级别的用户。

该用户通常是公司的主要联系人或管理员。

  1. 授权管理:

在全局账户级别,定义了所有可用的服务和资源的授权。

包括账单信息和其他关键设置。

  1. 创建其他管理员:

全局账户管理员可以在全局账户级别创建其他用户,并赋予他们管理员权限。

这些管理员可以帮助管理全局账户及其下的资源。

子账户级别的用户管理和授权

  1. 子账户创建:

全局账户管理员可以创建多个子账户。

创建子账户时,全局账户管理员会自动成为该子账户的管理员。

  1. 子账户管理员职责:

管理子账户内的授权和服务订阅。

在子账户级别创建其他用户,并为他们分配适当的角色和权限。

子账户管理员的权限仅限于子账户,不包括全局账户的管理权限。

  1. 创建业务用户:

子账户管理员可以创建业务用户。

业务用户是实际使用应用程序和服务的最终用户。

如果业务用户只需访问特定的应用程序,子账户管理员可以只为他们分配相应的应用程序授权,而不必提供对SAP BTP控制台的访问权限。

Roles and Authorizations

要使用SAP BTP的不同功能,您需要获得相应的授权。您可以使用角色和角色集合来配置这些授权。

角色集合(Role Collections)

角色集合由单个角色组成,这些角色结合了SAP BTP上资源和服务的授权。一个角色集合可以包含一个或多个角色。

您只能将角色集合分配给用户而不能单独分配单个角色。通过角色集合的分配,角色及其授权会自动提供给用户。

角色集合在每个SAP BTP层级上分别管理。全局账户中的角色集合不会出现在子账户中,同样,子账户中的角色集合也不会出现在全局账户中。

预定义的角色集合

平台用户:SAP BTP已经为平台用户提供了预定义的一组角色集合。为了在全局账户、目录、子账户等层级上设置管理员访问权限,现有管理员可以在SAP BTP的特定层级上将预定义的角色集合分配给其他平台用户。

应用程序用户:对于可以在SAP BTP上订阅的应用程序,也有预定义的角色集合,在应用程序订阅后可用。此外,还可以创建自定义角色集合,其中包含的角色赋予对部署在SAP BTP上的自定义应用程序的权限。

角色(Roles)

角色是由您使用的SAP BTP服务以及提供服务的角色模板的开发人员提供的。

如果服务启用了此功能,可以自定义这些角色模板。但在许多情况下,这不可行,您需要使用服务提供的角色,并开始将它们组合成角色集合,然后将这些角色集合分配给用户。

服务的开发人员也可能提供角色集合模板,但除此之外,您始终可以创建自己的角色集合。

Identity Providers

SAP BTP中的应用程序和服务,甚至是SAP BTP控制台,都不存储用户信息。相反,需要重定向到身份提供者(IdP)进行身份验证。这一概念使得身份验证功能可以从应用程序能力和授权管理中解耦并集中化。SAP BTP提供了使用SAP ID服务或自定义身份提供者的可能性。

SAP ID服务是SAP BTP中的默认身份提供者。它是一个预先配置的标准SAP公共IdP(account.sap.com),由所有客户共享。它与所有SAP BTP子账户都有预配置的信任连接。SAP ID服务完全由SAP管理和提供,您只能在该SAP ID服务中创建免费用户。SAP ID服务还用于官方SAP站点,包括SAP开发者和合作伙伴社区。这是管理S-用户、P-用户和D-用户的地方。

对于许多客户来说,用户可能存储在企业身份提供者中。SAP建议使用SAP Cloud Identity Services – Identity Authentication Service (IAS) 作为中心枢纽。

您可以将IAS作为一个单一的自定义身份提供者连接到SAP BTP。此外,您可以使用IAS与公司IT环境中现有的企业身份提供者集成。


SAP Cloud Identity Services 包含两个服务:身份认证(Identity Authentication)和身份供应(Identity Provisioning)。身份认证服务主要负责身份验证和单点登录,而身份供应服务则负责身份生命周期管理,这包括用户和组的创建、更改、删除等操作。

SAP Cloud Identity Services - Identity Provisioning

身份供应服务(Identity Provisioning Service)帮助您将身份及其授权提供给各种云和本地业务应用程序。身份供应服务为您提供以下功能:

  1. 管理用户帐户和授权:集中管理和分配用户的帐户信息及相应的访问权限。
  2. 云和本地的用户存储:支持在云和本地环境中存储用户信息。
  3. 企业身份的端到端生命周期集中管理:从创建、更改到删除,全面管理企业用户的身份生命周期。
  4. 快速高效的用户入职管理:简化新用户的入职流程,确保他们能够迅速获得所需的访问权限。
  5. 更多功能:包括但不限于用户数据同步、自动化工作流、审计日志记录等。

SAP Cloud Identity Services - Identity Authentication

身份认证(Identity Authentication)提供简单且安全的访问基于Web的应用程序的方式,支持多种身份验证方法,使用户可以在任何时间和任何地点进行访问。该服务以前被称为SAP Cloud ID服务。该服务的任务是基于支持开放标准(如SAML、SSO等)来验证身份提供者(IdP)和应用程序本身之间的身份验证。

身份认证(Identity Authentication)为您提供以下功能:

  1. 安全且简单的访问

基于SAML 2.0的身份联合:支持基于SAML 2.0标准的身份联合,允许用户通过一个身份提供者(IdP)访问多个应用程序。

Web单点登录(SSO)和桌面SSO:允许用户一次登录即可访问多个Web应用程序和服务,以及桌面应用程序。

社交登录和双因素认证:支持通过社交媒体帐户进行登录,并提供双因素认证以增强安全性。

更多功能:包括其他安全和便捷的访问方式。

  1. 用户和访问管理

用户管理及与本地用户存储的集成:集中管理和维护用户信息,并可以与本地目录服务(如Active Directory)集成。

用户自助服务:例如密码重置、注册和用户个人资料维护等功能,使用户能够自行管理其帐户。

密码和隐私策略:定义和实施密码复杂性要求、过期策略和其他隐私相关的安全策略。

更多功能:包括其他用户管理和访问控制功能。

  1. IdP代理功能

现有SSO基础设施的重用:允许您重用现有的单点登录基础设施,无需重新配置或迁移。

基于SAML 2.0标准的联合:支持基于SAML 2.0标准的身份联合,简化跨系统的身份验证流程。

更多功能:包括其他IdP代理和集成功能。

SAP 授权和信任管理服务(XSUAA)

XSUAA 服务是 SAP BTP 内部的一个组件,负责处理用户、身份提供者(IdP)和应用程序或服务之间的授权流程。-xtended Services User Account and Authentication

XSUAA 服务是 SAP 专门为 SAP BTP 开发的内部组件。在 Cloud Foundry 项目中,有一个开源组件称为 UAA(User Account and Authentication)。

UAA 是一个 OAuth 提供者,负责处理身份验证和授权。SAP 基于 UAA 的基础并扩展了特定于 SAP 的功能,以用于 SAP BTP。

XSUAA 服务的主要职责

1.身份验证和授权:

  1. XSUAA 服务在 SAP BTP 和 Cloud Foundry 环境中负责身份验证和授权,通过业务角色为业务用户提供权限。
  2. XSUAA 服务不存储用户数据或用户记录,而是需要与身份提供者建立可信连接。这可以是 SAP ID 服务或其他已集成到 SAP BTP 的企业身份提供者。这种集成可以通过 SAP Cloud Identity Services - Identity Authentication Service (IAS) 来实现。

2.中心基础设施组件:

  1. XSUAA 服务作为 SAP BTP 中 Cloud Foundry 环境的中心基础设施组件,用于业务用户的认证和授权。
  2. SAP 对 Cloud Foundry 的 UAA 进行了增强,添加了服务代理、多租户支持、管理 API 功能以及其他一些小的改进。

3.OAuth 协议:

  1. XSUAA 使用 OAuth 协议在多个服务之间进行身份验证,并连接到身份提供者。
  2. OAuth 是一种开放标准,允许应用程序和网站处理授权。OAuth 不会共享密码数据,而是使用3. 授权令牌来证明消费者和服务提供者之间的身份。
  3. OAuth 是一种认证协议,允许您批准一个应用程序代表您与另一个应用程序交互,而无需透露您的密码。
  4. OAuth 使用的令牌称为 JWT 令牌。JWT(读作 "jot")是一种开放标准,定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息。JWT 在 OAuth 中广泛用于安全地传输用户信息和访问权限。

应用路由-App Router

当一个业务应用程序由多个不同的应用(微服务)组成时,应用路由器(App Router)用于为该业务应用程序提供一个单一入口点。

从技术上讲,应用路由器是一个基于 Node.js 的应用程序,可在公共 NPM 注册表中获得。

应用路由器的启动基于一个名为 xs-app.json 的配置文件。在这个文件中,定义了哪些路由由该应用路由器处理,以及哪个 XSUAA 服务实例与应用路由器绑定以处理身份验证请求。

应用路由器的主要用途

  1. 提供静态内容或文件:

应用路由器可以用来提供静态资源,如文档、图片等,这些资源通常存储在文件系统结构中。

  1. 用户认证:

应用路由器负责用户的认证,将认证请求转发到 XSUAA 服务进行处理。它验证用户的访问令牌,并确保只有经过身份验证的用户才能访问受保护的资源。

  1. 分发请求到后端应用(微服务):

应用路由器根据请求的 URL 或其他条件,将请求动态地分发到相应的后端应用或微服务。这样可以实现不同微服务之间的无缝集成和通信。


技术驱动企业未来
技术驱动社会发展、更驱动企业未来
 最新文章