教程:Microsoft Entra 单一登录 (SSO) 与 SAP NetWeaver 的集成

本教程介绍如何将 SAP NetWeaver 与 Microsoft Entra ID 相集成。 将 SAP NetWeaver 与 Microsoft Entra ID 集成后,可以:

  • 在 Microsoft Entra ID 中控制谁有权访问 SAP NetWeaver。
  • 让用户能够使用其 Microsoft Entra 帐户自动登录到 SAP NetWeaver。
  • 在中心位置管理帐户。

先决条件

若要开始操作,需备齐以下项目:

  • 一个 Microsoft Entra 订阅。 如果你没有订阅,可以获取一个免费帐户
  • 已启用 SAP NetWeaver 单一登录 (SSO) 的订阅。
  • 需要至少 SAP NetWeaver V7.20

方案描述

  • SAP NetWeaver 支持 SAMLSP 发起的 SSO)和 OAuth。 在本教程中,将在测试环境中配置并测试 Microsoft Entra SSO。

注意

此应用程序的标识符是一个固定字符串值,因此只能在一个租户中配置一个实例。

注意

根据组织的要求在 SAML 或 OAuth 中配置应用程序。

要配置 SAP NetWeaver 与 Microsoft Entra ID 的集成,需要从库中将 SAP NetWeaver 添加到托管 SaaS 应用列表。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览至“标识”>“应用程序”>“企业应用程序”>“新建应用程序”。
  3. 在“从库中添加”部分的搜索框中,键入 SAP NetWeaver
  4. 在结果面板中选择“SAP NetWeaver”,然后添加该应用。 在该应用添加到租户时等待几秒钟。

或者,也可以使用企业应用配置向导。 在此向导中,可以将应用程序添加到租户、将用户/组添加到应用、分配角色,以及逐步完成 SSO 配置。 详细了解 Microsoft 365 向导。

配置并测试 SAP NetWeaver 的 Microsoft Entra SSO

使用名为 B.Simon 的测试用户配置并测试 SAP NetWeaver 的 Microsoft Entra SSO。 若要使 SSO 正常工作,需要在 Microsoft Entra 用户与 SAP NetWeaver 中的相关用户之间建立关联。

若要配置并测试 SAP NetWeaver 的 Microsoft Entra SSO,请执行以下步骤:

  1. 配置 Microsoft Entra SSO,以使用户能够使用此功能。
    1. 创建 Microsoft Entra 测试用户,以使用 B.Simon 测试 Microsoft Entra 单一登录。
    2. 分配 Microsoft Entra 测试用户,以使 B.Simon 能够使用 Microsoft Entra 单一登录。
  2. 使用 SAML 配置 SAP NetWeaver ,在应用程序端配置 SSO 设置。
    1. 创建 SAP NetWeaver 测试用户,在 SAP NetWeaver 中创建 B.Simon 的对应用户,并将其链接到该用户的 Microsoft Entra 表示形式。
  3. 测试 SSO ,验证配置是否正常工作。
  4. 配置 SAP NetWeaver 的 OAuth,在应用程序端配置 OAuth 设置。

配置 Microsoft Entra SSO

在本部分,你将启用 Microsoft Entra 单一登录。

若要配置 SAP NetWeaver 的 Microsoft Entra 单一登录,请执行以下步骤:

  1. 打开新的 Web 浏览器窗口,以管理员身份登录到 SAP NetWeaver 公司站点

  2. 请确保“http”和“https”服务处于活动状态,并且在 SMICM“T-Code”中分配了相应的端口 。

  3. 登录到 SAP 系统 (T01) 的业务客户端(需要 SSO)并激活 HTTP 安全会话管理。

    1. 转到事务代码“SICF_SESSIONS” 。 它显示具有当前值的所有相关配置文件参数。 这些参数如下所示:

      login/create_sso2_ticket = 2
      login/accept_sso2_ticket = 1
      login/ticketcache_entries_max = 1000
      login/ticketcache_off = 0  login/ticket_only_by_https = 0 
      icf/set_HTTPonly_flag_on_cookies = 3
      icf/user_recheck = 0  http/security_session_timeout = 1800
      http/security_context_cache_size = 2500
      rdisp/plugin_auto_logout = 1800
      rdisp/autothtime = 60
      

      注意

      根据组织要求调整上述参数,以上参数仅作为指示给出。

    2. 如果需要调整参数,请在 SAP 系统的实例/默认配置文件中重启 SAP 系统。

    3. 双击相关客户端以启用 HTTP 安全会话。

      The HTTP Security session

    4. 激活以下 SICF 服务:

      /sap/public/bc/sec/saml2
      /sap/public/bc/sec/cdc_ext_service
      /sap/bc/webdynpro/sap/saml2
      /sap/bc/webdynpro/sap/sec_diag_tool (This is only to enable / disable trace)
      
  4. 转到 SAP 系统 [T01/122] 的业务客户端中的事务代码“SAML2” 。 它将在浏览器中打开用户界面。 在此示例中,我们假定 122 为 SAP 业务客户端。

    Transaction code

  5. 提供用户名和密码以进入用户界面,然后单击“编辑” 。

    username and password

  6. 将“提供程序名称”从 T01122 替换为 http://T01122,然后单击“保存” 。

    注意

    默认情况下,提供程序名称采用 <sid><client> 格式,但 Microsoft Entra ID 需要格式为 <protocol>://<name> 的名称,建议将提供程序名称保留为 https://<sid><client> 以允许在 Microsoft Entra ID 中配置多个 SAP NetWeaver ABAP 引擎。

    The multiple SAP NetWeaver ABAP engines

  7. 生成服务提供程序元数据:完成在 SAML 2.0 用户界面上配置“本地提供商”和“受信任的提供程序”设置后,下一步将是生成服务提供程序元数据文件(包含 SAP 中的所有设置、身份验证上下文和其他配置) 。 生成此文件后,需要在 Microsoft Entra ID 中上传此文件。

    Generating Service Provider Metadata

    1. 转到“本地提供程序”选项卡 。

    2. 单击“元数据” 。

    3. 将生成的“元数据 XML 文件”保存在计算机上,并将其上传到“基本 SAML 配置”部分,以便在 Azure 门户中自动填充“标识符”和“回复 URL”值 。

按照以下步骤启用 Microsoft Entra SSO。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心

  2. 依次浏览到“标识”>“应用程序”>“企业应用程序”>“SAP NetWeaver”应用程序集成页面,找到“管理”部分,然后选择“单一登录”。

  3. 在“选择单一登录方法”页上选择“SAML” 。

  4. 在“设置 SAML 单一登录”页面上,单击“基本 SAML 配置”旁边的铅笔图标以编辑设置 。

    Edit Basic SAML Configuration

  5. 如果要在 IDP 发起的模式下配置应用程序,请在“基本 SAML 配置部分”中执行以下步骤 :

    1. 单击“上传元数据文件”以上传之前获取的“服务提供程序元数据文件” 。

    2. 单击“文件夹徽标” 来选择元数据文件并单击“上传”。

    3. 成功上传元数据文件后,标识符回复 URL 值会自动填充在“基本 SAML 配置” 部分的文本框中,如下所示:

    4. 在“登录 URL” 文本框中,使用以下模式键入 URL:https://<your company instance of SAP NetWeaver>

    注意

    某些客户遇到了为其实例配置的回复 URL 不正确的错误。 如果你收到了任何此类错误,请使用这些 PowerShell 命令。 首先使用回复 URL 更新应用程序对象中的回复 URL,然后更新服务主体。 使用 Get-MgServicePrincipal 获取服务主体 ID 值。

    $params = @{
       web = @{
          redirectUris = "<Your Correct Reply URL>"
       }
    }
    Update-MgApplication -ApplicationId "<Application ID>" -BodyParameter $params
    Update-MgServicePrincipal -ServicePrincipalId "<Service Principal ID>" -ReplyUrls "<Your Correct Reply URL>"
    
  6. SAP NetWeaver 应用程序需要特定格式的 SAML 断言,因此,需要在 SAML 令牌属性配置中添加自定义属性映射。 以下屏幕截图显示了默认属性的列表。 单击“编辑”图标以打开“用户属性”对话框。

    edit attribute

  7. 在“用户属性” 对话框的“用户声明” 部分中,按上图所示配置 SAML 令牌属性,并执行以下步骤:

    1. 单击“编辑图标”,打开“管理用户声明”对话框 。

      edit icon

      image

    2. 从“转换”列表中,选择“ExtractMailPrefix()” 。

    3. 从“参数 1”列表中选择“user.userprincipalname” 。

    4. 单击“保存” 。

  8. 在“使用 SAML 设置单一登录”页的“SAML 签名证书”部分中找到“联合元数据 XML”,选择“下载”以下载该证书并将其保存在计算机上 。

    The Certificate download link

  9. 在“设置 SAP NetWeaver”部分,根据要求复制相应的 URL 。

    Copy configuration URLs

创建 Microsoft Entra 测试用户

在本部分,你将创建名为 B.Simon 的测试用户。

  1. 至少以用户管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“用户”>“所有用户”
  3. 选择屏幕顶部的“新建用户”>“创建新用户”。
  4. “用户”属性中执行以下步骤:
    1. 在“显示名称”字段中输入 B.Simon
    2. 在“用户主体名称”字段中,输入 username@companydomain.extension。 例如 B.Simon@contoso.com
    3. 选中“显示密码”复选框,然后记下“密码”框中显示的值。
    4. 选择“查看 + 创建”。
  5. 选择“创建”。

分配 Microsoft Entra 测试用户

在本部分中,你将通过授予 B.Simon 访问 SAP NetWeaver 的权限,支持其使用单一登录。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 依次浏览到“标识”>“应用程序”>“企业应用程序”>“SAP NetWeaver”。
  3. 在应用的概述页中,找到“管理”部分,选择“用户和组” 。
  4. 选择“添加用户”,然后在“添加分配”对话框中选择“用户和组”。
  5. 在“用户和组”对话框中,从“用户”列表中选择“B.Simon”,然后单击屏幕底部的“选择”按钮。 如果你希望将某角色分配给用户,可以从“选择角色”下拉列表中选择该角色。 如果尚未为此应用设置任何角色,你将看到选择了“默认访问权限”角色。
  6. 在“添加分配”对话框中,单击“分配”按钮。

使用 SAML 配置 SAP NetWeaver

  1. 登录到 SAP 系统并转到事务代码 SAML2。 这将打开带有 SAML 配置屏幕的新浏览器窗口。

  2. 要为受信任的标识提供程序 (Microsoft Entra ID) 配置终结点,请转到“受信任的提供程序”选项卡。

    Configure Single Sign-On Trusted Providers

  3. 按“添加”,然后从上下文菜单选择“上传元数据文件”

    Configure Single Sign-On 2

  4. 上传已下载的元数据文件。

    Configure Single Sign-On 3

  5. 在下一个屏幕中,键入别名。 例如,键入 aadsts 并按“下一步”以继续操作

    Configure Single Sign-On 4

  6. 请确保“摘要算法”应为“SHA-256”且无需进行任何更改,然后按“下一步”

    Configure Single Sign-On 5

  7. 在“单一登录终结点”上,使用“HTTP POST”并单击“下一步”以继续

    Configure Single Sign-On 6

  8. 在“单一注销终结点”上,选择“HTTPRedirect”并单击“下一步”以继续

    Configure Single Sign-On 7

  9. 在“项目终结点”上,按“下一步”以继续

    Configure Single Sign-On 8

  10. 在“身份验证要求”上,单击“完成”

    Configure Single Sign-On 9

  11. 转到选项卡“受信任的提供程序”>“联合身份验证”(屏幕底部) 。 单击 “编辑”

    Configure Single Sign-On 10

  12. 单击“联合身份验证”(底部窗口)选项卡下的“添加”

    Configure Single Sign-On 11

  13. 从弹出窗口中选择“支持的 NameID 格式”中的“未指定”,然后单击“确定”

    Configure Single Sign-On 12

  14. 将“用户 ID 源”值指定为“断言属性”,将“用户 ID 映射模式”值指定为“电子邮件”,并将“断言属性名称”指定为 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

    Configure Single Sign-On

  15. 请注意,“用户 ID 源”和“用户 ID 映射模式”值确定 SAP 用户与 Microsoft Entra 声明之间的关联。

方案:SAP 用户到 Microsoft Entra 用户映射。

  1. 从 SAP 获取 NameID 详细信息的屏幕截图。

    Configure Single Sign-On 13

  2. 提及 Microsoft Entra ID 中的所需声明的屏幕截图。

    Configure Single Sign-On 14

    方案:根据 SU01 中配置的电子邮件地址选择 SAP 用户 ID。 在这种情况下,应在 su01 中为每个需要 SSO 的用户配置电子邮件 ID。

    1. 从 SAP 获取 NameID 详细信息的屏幕截图。

      Configure Single Sign-On 15

    2. 提及 Microsoft Entra ID 中的所需声明的屏幕截图。

    Configure Single Sign-On 16

  3. 单击“保存”,再单击“启用”以启用标识提供程序

    Configure Single Sign-On 17

  4. 出现提示后,请单击“确定”

    Configure Single Sign-On 18

创建 SAP NetWeaver 测试用户

在本部分,你将在 SAP NetWeaver 中创建名为 B.Simon 的用户。 请与内部 SAP 专家团队合作,或与组织 SAP 合作伙伴合作,以便在 SAP NetWeaver 平台中添加用户。

测试 SSO

  1. 激活 Microsoft Entra ID 的标识提供程序后,请尝试访问以下 URL 以检查 SSO(不会提示输入用户名和密码)

    https://<sapurl>/sap/bc/bsp/sap/it00/default.htm

    (或者)使用以下 URL

    https://<sapurl>/sap/bc/bsp/sap/it00/default.htm

    注意

    Sapurl 替换为实际的 SAP 主机名。

  2. 单击上面的 URL 应转到下面所述的屏幕。 如果能够访问以下页面,则 Microsoft Entra SSO 设置已成功完成。

    test Single Sign-On

  3. 如果出现用户名和密码提示,请通过使用以下 URL 启用跟踪来诊断问题

    https://<sapurl>/sap/bc/webdynpro/sap/sec_diag_tool?sap-client=122&sap-language=EN#

配置 SAP NetWeaver 的 OAuth

  1. 以下位置提供了 SAP 阐述的过程:启用 NetWeaver 网关服务和创建 OAuth 2.0 范围

  2. 转到“SPRO”并找到“激活和维护服务”。

    Activate and Maintain services

  3. 在本示例中,我们使用 OAuth 将 OData 服务 DAAG_MNGGRP 连接到 Microsoft Entra SSO。 使用技术服务名称搜索服务 DAAG_MNGGRP,如果该服务尚未激活,请将其激活(查看“ICF 节点”选项卡下的 green 状态)。 确保系统别名(实际运行服务的已连接后端系统)正确。

    OData service

    • 然后单击顶部按钮栏上的“OAuth”按钮,并分配 scope(保留提供的默认名称)。
  4. 在本示例中,范围为 DAAG_MNGGRP_001,它是通过自动添加数字基于服务名称生成的。 报告 /IWFND/R_OAUTH_SCOPES 可用于更改范围名称或手动创建。

    Configure OAuth

    注意

    消息 soft state status is not supported – 可以忽略,因为未出现问题。

为 OAuth 2.0 客户端创建服务用户

  1. OAuth2 使用 service ID 代表最终用户获取访问令牌。 OAuth 设计的重要限制:OAuth 2.0 Client ID 必须与 OAuth 2.0 客户端在请求访问令牌时用于登录的 username 相同。 因此,对于本示例,我们将注册名为 CLIENT1 的 OAuth 2.0 客户端,作为先决条件,SAP 系统中必须存在同名 (CLIENT1) 的用户,并且我们要将该用户配置为由被引用的应用程序使用。

  2. 注册 OAuth 客户端时,我们将使用 SAML Bearer Grant type

    注意

    有关更多详细信息,请参阅 SAML 持有者授权类型的 OAuth 2.0 客户端注册

  3. tcod:SU01 / 创建 System type 的用户 CLIENT1 并分配密码,根据需要保存设置,以便为 API 程序员提供凭据。程序员应将凭据和用户名一起添加到调用代码。 不要分配配置文件或角色。

使用创建向导注册新的 OAuth 2.0 客户端 ID

  1. 若要注册新的 OAuth 2.0 客户端,请启动事务 SOAUTH2。 该事务将显示有关已注册的 OAuth 2.0 客户端的概述。 选择“创建”,针对本示例中名为 CLIENT1 的新 OAuth 客户端启动向导。

  2. 转到“T-Code:SOAUTH2”并提供说明,然后单击“下一步”。

    SOAUTH2

    OAuth 2.0 Client ID

  3. 从下拉列表中选择已添加的“SAML2 IdP – Microsoft Entra ID”,然后单击“保存”。

    SAML2 IdP – Microsoft Entra ID 1

    SAML2 IdP – Microsoft Entra ID 2

    SAML2 IdP – Microsoft Entra ID 3

  4. 单击范围分配下的“添加”,以添加前面创建的范围:DAAG_MNGGRP_001

    Scope

    scope assignment

  5. 单击“完成”。

后续步骤

配置 Microsoft Entra SAML NetWeaver 后,就可以强制实施会话控制,实时防止组织的敏感数据外泄和渗透。 会话控制扩展自条件访问。 了解如何通过 Microsoft Defender for Cloud Apps 强制实施会话控制