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

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

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

先决条件

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

  • 一个 Microsoft Entra 订阅。 如果没有订阅,可以获取一个免费帐户
  • 已启用 SAP Fiori 单一登录 (SSO) 的订阅。

方案描述

在本教程中,你将在测试环境中配置并测试 Microsoft Entra SSO。

  • SAP Fiori 支持 SP 发起的 SSO

注意

对于 SAP Fiori 启动的 iFrame 身份验证,我们建议在 SAML AuthnRequest 中使用 IsPassive 参数进行无提示身份验证。 有关 IsPassive 参数的详细信息,请参阅 Microsoft Entra SAML 单一登录信息。

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

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

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

配置并测试 SAP Fiori 的 Microsoft Entra SSO

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

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

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

配置 Microsoft Entra SSO

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

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

  2. 请确保“http”和“https”服务处于活动状态,并且已对事务代码 SMICM 分配相关端口 。

  3. 登录适用于 SAP 系统 T01 的 SAP Business Client(需要单一登录) 。 然后,激活 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 Current Values of Relevant Profile Parameters page in SAP

    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] 的 Business Client 中的事务代码“SAML2” 。 配置 UI 将在新浏览器窗口中打开。 在本示例中,我们使用适用于 SAP 系统 122 的 Business Client。

    The SAP Fiori Business Client sign-in page

  5. 输入用户名和密码,然后选择“登录” 。

    The SAML 2.0 Configuration of ABAP System T01/122 page in SAP

  6. 在“提供程序名称”框中,将“T01122”替换为“http://T01122”,然后选择“保存”。

    注意

    默认情况下,提供程序名称的格式为 <sid><client>。 Microsoft Entra ID 要求的名称格式为 <protocol>://<name>。 我们建议将提供程序名称的格式保留为 https://<sid><client>,以便可在 Microsoft Entra ID 中配置多个 SAP Fiori ABAP 引擎。

    The updated provider name in the SAML 2.0 Configuration of ABAP System T01/122 page in SAP

  7. 选择“本地提供程序”选项卡>“元数据” 。

  8. 在“SAML 2.0 元数据”对话框中,下载生成的元数据 XML 文件并将其保存在计算机上 。

    The Download Metadata link in the SAP SAML 2.0 Metadata dialog box

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

  10. 浏览到“标识”>“应用程序”>“企业应用程序”>“SAP Fiori”>“单一登录”。

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

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

    Edit Basic SAML Configuration

  13. 在“基本 SAML 配置”部分,如果有服务提供程序元数据文件,请执行以下步骤:

    1. 单击“上传元数据文件” 。

      Upload metadata file

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

      choose metadata file

    3. 成功上传元数据文件后,“标识符”和“回复 URL”值会自动填充在“基本 SAML 配置”窗格中 。 在“登录 URL” 框中,输入具有以下模式的 URL:https://<your company instance of SAP Fiori>

      注意

      某些客户遇到了为其实例配置的回复 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>"
      
  14. SAP Fiori 应用程序需要特定格式的 SAML 断言。 请为此应用程序配置以下声明。 要管理这些属性值,请在“设置 SAML 单一登录”窗格中,选择“编辑” 。

    The User attributes pane

  15. 在“用户属性和声明”窗格中,配置 SAML 令牌属性,如上图所示。 然后完成以下步骤:

    1. 选择“编辑”以打开“管理用户声明”窗格 。

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

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

    4. 选择“保存”。

      The Manage user claims pane

      The Transformation section in the Manage user claims pane

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

    The Certificate download link

  17. 在“设置 SAP Fiori”部分中,根据要求复制相应 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 Fiori 的权限,使其能够使用单一登录。

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

配置 SAP Fiori 单一登录

  1. 登录到 SAP 系统并转到事务代码 SAML2 。 将打开显示 SAML 配置页面的新浏览器窗口。

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

    The Trusted Providers tab in SAP

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

    The Add and Upload Metadata File options in SAP

  4. 上传已下载的元数据文件。 选择下一步

    Select the metadata file to upload in SAP

  5. 在下一页的“别名”框中,输入别名 。 例如:aadsts 。 选择下一步

    The Alias box in SAP

  6. 确保“摘要算法”框中的值为 SHA-256 。 选择下一步

    Verify the Digest Algorithm value in SAP

  7. 在“单一登录终结点”下,选择“HTTP POST”,然后选择“下一步” 。

    Single Sign-On Endpoints options in SAP

  8. 在“单一注销终结点”下,选择“HTTP 重定向”,然后选择“下一步” 。

    Single Logout Endpoints options in SAP

  9. 在“项目终结点”下,选择“下一步”以继续 。

    Artifact Endpoints options in SAP

  10. 在“身份验证要求”下,选择“完成” 。

    Authentication Requirements options and the Finish option in SAP

  11. 选择“受信任的提供程序”>“联合身份验证”(页面底部) 。 选择编辑

    The Trusted Provider and Identity Federation tabs in SAP

  12. 选择添加

    The Add option on the Identity Federation tab

  13. 在“支持的 NameID 格式”对话框中,选择“未指定” 。 选择“确定”

    The Supported NameID Formats dialog box and options in SAP

    用户 ID 源”和“用户 ID 映射模式”的值确定 SAP 用户与 Microsoft Entra 声明之间的链接。

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

    1. 在 SAP 中的“NameID 格式的详细信息 “未指定””下,请注意以下详细信息 :

      Screenshot that shows the 'Details of NameID Format

    2. 在 Azure 门户中的“用户属性和声明”下,请注意 Microsoft Entra ID 所需的声明。

      Screenshot that shows the

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

    1. 在 SAP 中的“NameID 格式的详细信息 “未指定””下,请注意以下详细信息 :

      The Details of NameID Format

    2. 在 Azure 门户中的“用户属性和声明”下,请注意 Microsoft Entra ID 所需的声明。

      The User Attributes and Claims dialog box in the Azure portal

  14. 选择“保存”,再选择“启用”以启用标识提供程序 。

    The Save and Enable options in SAP

  15. 出现提示时选择“确定” 。

    The OK option in SAML 2.0 Configuration dialog box in SAP

创建 SAP Fiori 测试用户

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

测试 SSO

  1. 在 SAP Fior 中激活身份提供程序 Microsoft Entra ID 后,请尝试访问以下一个 URL 以测试单一登录(不应看到输入用户名和密码的提示):

    • https://<sap-url>/sap/bc/bsp/sap/it00/default.htm
    • https://<sap-url>/sap/bc/bsp/sap/it00/default.htm

    注意

    <sap-url> 替换为实际的 SAP 主机名。

  2. 测试 URL 应将你转到 SAP 中的如下测试应用程序页面。 如果页面打开,则表明已成功设置 Microsoft Entra 单一登录。

    The standard test application page in SAP

  3. 如果系统提示输入用户名和密码,请启用跟踪以帮助诊断问题。 使用以下 URL 进行跟踪:

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

后续步骤

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