使用 Microsoft Entra ID 为 FortiGate SSL VPN 配置单一登录

本文介绍如何将 FortiGate SSL VPN 与 Microsoft Entra ID 集成。 将 FortiGate SSL VPN 与 Microsoft Entra ID 集成后,可以:

  • 使用 Microsoft Entra ID 来控制谁可以访问 FortiGate SSL VPN。
  • 让用户使用其Microsoft Entra 帐户自动登录到 FortiGate SSL VPN。
  • 在一个中心位置(Azure 门户)管理帐户。

先决条件

若要开始,需要以下项:

  • 一份 Microsoft Entra 订阅。 如果你没有订阅,可以获取一个免费帐户
  • 启用了单一登录 (SSO) 的 FortiGate SSL VPN。

文章说明

本文中,您将在测试环境中配置并测试 Microsoft Entra SSO。

FortiGate SSL VPN 支持 SP 发起的 SSO。

若要配置 FortiGate SSL VPN 与 Microsoft Entra ID 的集成,需要从库中将 FortiGate SSL VPN 添加到托管 SaaS 应用列表:

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 请导航到 Entra ID>企业应用>新应用
  3. “从库中添加” 部分中,在搜索框中输入 FortiGate SSL VPN
  4. 在结果面板中选择 FortiGate SSL VPN ,然后添加应用。 请稍等几秒钟,应用程序将被添加到您的租户中。

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

配置和测试 Microsoft Entra SSO 以用于 FortiGate SSL VPN

你将使用名为 B.Simon 的测试用户配置和测试 Microsoft Entra SSO 与 FortiGate SSL VPN。 若要正常使用 SSO,需要在 Microsoft Entra 用户与 FortiGate SSL VPN 中的相应 SAML SSO 用户组之间建立链接关系。

若要配置并测试 Microsoft Entra SSO 与 FortiGate SSL VPN 的集成,您需要完成以下高级步骤:

  1. 配置 Microsoft Entra SSO ,为用户启用该功能。
    1. 创建 Microsoft Entra 测试用户 以测试 Microsoft Entra 单一登录。
    2. 授予对测试用户的访问权限 ,以便为该用户启用 Microsoft Entra 单一登录。
  2. 在应用程序端配置 FortiGate SSL VPN SSO
    1. 创建一个 FortiGate SAML SSO 用户组 作为用户在 Microsoft Entra 中的对应表示。
  3. 测试 SSO 以验证配置是否正常工作。

配置 Microsoft Entra SSO

按照以下步骤在 Azure 门户中启用 Microsoft Entra SSO:

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

  2. 浏览到 Entra ID>Enterprise 应用>FortiGate SSL VPN 应用程序集成页,在 “管理 ”部分中,选择 单一登录

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

  4. 在“使用 SAML 设置单 Sign-On”页上,选择“基本 SAML 配置”的“编辑”按钮以编辑设置:

    显示“基本 SAML 配置”页的屏幕截图。

  5. “使用 SAML 设置单一 Sign-On ”页上,输入以下值:

    a。 在 “标识符 ”框中,输入模式 https://<FortiGate IP or FQDN address>:<Custom SSL VPN port>/remote/saml/metadata中的 URL。

    b. 在 “回复 URL ”框中,输入模式 https://<FortiGate IP or FQDN address>:<Custom SSL VPN port>/remote/saml/login中的 URL。

    选项c. 在 “登录 URL ”框中,输入模式 https://<FortiGate IP or FQDN address>:<Custom SSL VPN port>/remote/saml/login中的 URL。

    d。 在 “注销 URL ”框中,输入模式 https://<FortiGate IP or FQDN address>:<Custom SSL VPN port><FQDN>/remote/saml/logout中的 URL。

    注释

    这些值只是模式。 需要使用在 FortiGate 上配置的实际 登录 URL标识符回复 URL注销 URL 。 FortiGate 支援团队需要为环境提供正确的值。

  6. FortiGate SSL VPN 应用程序需要特定格式的 SAML 断言,这要求向配置添加自定义属性映射。 以下屏幕截图显示了默认属性的列表。

    显示“属性和声明”部分的屏幕截图。

  7. 下表显示了 FortiGate SSL VPN 所需的声明。 这些声明的名称必须与本文的 “执行 FortiGate 命令行配置 ”部分中使用的名称匹配。 名称区分大小写。

    名称 源属性
    用户名 用户的主帐户名称 (user.userprincipalname)
    群 体 用户组

    为了创建更多此类声明,

    a。 在 用户属性和声明旁边,选择“ 编辑”。

    b. 选择“添加新声明”。

    选项c. 对于 “名称”,请输入 用户名

    d。 对于 Source 属性,请选择 user.userprincipalname

    e。 选择“保存”

    注释

    用户属性和声明 仅允许一个组声明。 若要添加组声明,请删除声明中已存在的现有组声明 user.groups [SecurityGroup] ,以添加新声明或编辑现有声明到 所有组

    f。 选择“添加组声明”。

    g。 选择“所有组”。

    h. 在“高级选项”下,选中“自定义组声明的名称”复选框。

    一. 对于“名称”,请输入“group”。

    j. 选择“保存”

  8. “使用 SAML 设置单一 Sign-On”页面的“SAML 签名证书”部分中,选择“证书 (Base64)”旁的“下载”链接,以下载证书并将其保存到您的计算机上:

    显示证书下载链接的屏幕截图。

  9. “设置 FortiGate SSL VPN ”部分中,根据要求复制相应的 URL 或 URL:

    显示配置 URL 的屏幕截图。

创建 Microsoft Entra 测试用户

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

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

授予对测试用户的访问权限

在本部分中,通过授予 B.Simon 访问 FortiGate SSL VPN 的权限,允许其使用单一登录。

  1. 浏览到 Entra ID>企业应用
  2. 在应用程序列表中,选择 FortiGate SSL VPN
  3. 在应用的概述页上的“ 管理 ”部分中,选择“ 用户和组”。
  4. 选择 添加用户,然后在 添加分配 对话框中选择 用户和组
  5. 在“用户和组”对话框中,在“用户”列表中选择 B.Simon,然后选择屏幕底部的“选择”按钮。
  6. 如果您期望在 SAML 断言中包含任何角色值,请在 “选择角色” 对话框中,从列表中为用户选择相应的角色。 选择屏幕底部的 “选择 ”按钮。
  7. 在“ 添加分配 ”对话框中,选择“ 分配”。

为测试用户创建安全组

在本部分中,将在测试用户的 Microsoft Entra ID 中创建安全组。 FortiGate 使用此安全组通过 VPN 授予用户网络访问权限。

  1. 在Microsoft Entra 管理中心,导航到 Entra ID>>新组
  2. “新建组 ”属性中,完成以下步骤:
    1. 在“组类型”列表中,选择“安全性”。
    2. “组名称 ”框中,输入 FortiGateAccess
    3. “组说明 ”框中,输入 用于授予 FortiGate VPN 访问权限的组
    4. 对于 Microsoft Entra 角色可以分配给组(预览) 设置,请选择 “否”
    5. 在“ 成员身份类型 ”框中,选择“ 已分配”。
    6. 在“ 成员”下,选择“ 未选择成员”。
    7. 在“用户和组”对话框中,从“用户”列表中选择 B.Simon,然后选择屏幕底部的“选择”按钮。
    8. 选择 创建
  3. 返回Microsoft Entra ID 的 “组” 部分后,找到 FortiGate 访问 组并记下 对象 ID。稍后需要用到它。

配置 FortiGate SSL VPN SSO

将 Base64 SAML 证书上传到 FortiGate 设备

在租户中完成 FortiGate 应用的 SAML 配置后,下载了 Base64 编码的 SAML 证书。 需要将此证书上传到 FortiGate 设备:

  1. 登录到 FortiGate 设备的管理门户。
  2. 在左窗格中,选择 “系统”。
  3. “系统”下,选择“ 证书”。
  4. 选择“导入”“远程证书” 。
  5. 浏览到从 Azure 租户中的 FortiGate 应用部署下载的证书,选择它,然后选择“ 确定”。

上传证书后,请记下系统>远程证书>下的名称。 默认情况下,它命名为 REMOTE_Cert_N,其中 N 是整数值。

完成 FortiGate 命令行配置

尽管从 FortiOS 7.0 开始可以在 GUI 上配置 SSO,但 CLI 配置适用于所有版本,因此在此处显示。

若要完成这些步骤,需要前面记录的值:

FortiGate SAML CLI 设置 等效的 Azure 配置
SP 实体 ID (entity-id 标识符(实体 ID)
SP 单一登录 URL (single-sign-on-url 回复 URL(断言使用者服务 URL)
SP 单一注销 URL (single-logout-url 注销 URL
IdP 实体 ID (idp-entity-id Microsoft Entra 标识符
IdP 单一登录 URL (idp-single-sign-on-url Azure 登录 URL
IdP 单一注销 URL (idp-single-logout-url Azure 注销 URL
IdP 证书 (idp-cert Base64 SAML 证书名称(REMOTE_Cert_N)
用户名属性 (user-name 用户名
组名称属性 (group-name 群 体

注释

FortiGate 配置中不使用基本 SAML 配置下的登录 URL。 它用于触发 SP 发起的单一登录,将用户重定向到 SSL VPN 门户页面。

  1. 与 FortiGate 设备建立 SSH 会话,并使用 FortiGate 管理员帐户登录。

  2. 运行以下命令,并将前面收集的信息替换为 <values>

    config user saml
      edit azure
        set cert <FortiGate VPN Server Certificate Name>
        set entity-id < Identifier (Entity ID)Entity ID>
        set single-sign-on-url < Reply URL Reply URL>
        set single-logout-url <Logout URL>
        set idp-entity-id <Azure AD Identifier>
        set idp-single-sign-on-url <Azure Login URL>
        set idp-single-logout-url <Azure Logout URL>
        set idp-cert <Base64 SAML Certificate Name>
        set user-name username
        set group-name group
      next
    end
    

配置 FortiGate 以实现组匹配

在本部分中,将 FortiGate 配置为识别包含测试用户的安全组的对象 ID。 此配置允许 FortiGate 根据组成员身份做出访问决策。

若要完成这些步骤,需要本文前面创建的 FortiGateAccess 安全组的对象 ID。

  1. 与 FortiGate 设备建立 SSH 会话,并使用 FortiGate 管理员帐户登录。

  2. 运行以下命令:

    config user group
      edit FortiGateAccess
        set member azure
        config match
          edit 1
            set server-name azure
            set group-name <Object Id>
          next
        end
      next
    end
    

创建 FortiGate VPN 门户和防火墙策略

在本部分中,将配置一个 FortiGate VPN 门户和防火墙策略,该策略授予对本文前面创建的 FortiGateAccess 安全组的访问权限。

有关说明,请参阅 为 SSL VPN 配置 SAML SSO 登录,Microsoft Entra ID 充当 SAML IdP

测试 SSO

在本部分,你将使用以下选项测试 Microsoft Entra 单一登录配置。

  • 在 Azure SSO 配置的步骤 5 中,*测试应用的单一登录,选择 “测试 ”按钮。 此选项重定向到 FortiGate VPN 登录 URL,可在其中启动登录流。

  • 直接转到 FortiGate VPN 登录 URL,并从那里启动登录流。

  • 你可使用 Microsoft 的“我的应用”。 在“我的应用”中选择 FortiGate VPN 磁贴时,此选项会重定向到 FortiGate VPN 登录 URL。 有关“我的应用”的详细信息,请参阅“我的应用”简介

配置 FortiGate VPN 后,可以强制实施会话控制,实时防止组织的敏感数据外泄和渗透。 会话控制是条件访问的延伸。 了解如何通过 Microsoft Defender for Cloud Apps 强制实施会话控制