跳到主要内容

设置 Microsoft Entra ID (OIDC) 单点登录 (SSO)

只需极少的配置,这个连接器即可与 Microsoft Entra ID(前身为 Azure AD)集成,实现企业单点登录 (SSO)。

提示:

有关 SSO 和如何在 Logto 中配置 SSO 的更多信息,请查看 企业单点登录 (SAML & OIDC) 文档以开始使用。

步骤 1:创建 Microsoft EntraID OIDC 应用

  1. 前往 Microsoft Entra 管理中心 并以管理员身份登录。

  2. 浏览到 Identity > Applications > App registrations。

Create Application
  1. 选择 New registration

  2. 输入应用程序名称,并为你的应用程序选择适当的账户类型。

  3. 选择 Web 作为应用程序平台。

  4. 从 Logto 的 SSO 设置页面复制并粘贴 redirect URIredirect URI 是用户在通过 Microsoft Entra ID 认证后被重定向的 URL。

Configure Application
  1. 点击 Register 创建应用程序。

步骤 2:在 Logto 配置 Microsoft Entra ID OIDC 单点登录 (SSO)

成功创建 Microsoft Entra OIDC 应用后,你需要将 IdP 配置返回到 Logto。在 Logto 控制台的 Connection 标签页,填写以下配置信息:

  1. Client ID:由 Microsoft Entra 分配给你的 OIDC 应用的唯一标识符。Logto 使用此标识符在 OIDC 流程中识别并认证该应用。你可以在应用概览页面找到它,显示为 Application (client) ID
应用详情
  1. Client Secret:创建一个新的 client secret,并将其值复制到 Logto。此密钥用于认证 OIDC 应用,并保障 Logto 与 IdP 之间的通信安全。
创建密钥
  1. 发行者 (Issuer):发行者 (Issuer) URL,是 IdP 的唯一标识符,指定了可以找到 OIDC 身份提供商的位置。它是 OIDC 配置中的关键部分,有助于 Logto 发现所需的端点。

    你无需手动提供所有这些 OIDC 端点,Logto 会自动获取所有必需的配置和 IdP 端点。这是通过你提供的发行者 (Issuer) URL 并调用 IdP 的 discover 端点实现的。

    要获取发行者 (Issuer) URL,你可以在应用概览页面的 Endpoints 部分找到。

    找到 OpenID Connect metadata document 端点,并复制该 URL,不要包含末尾的 .well-known/openid-configuration 路径。因为 Logto 在获取 OIDC 配置时会自动将 .well-known/openid-configuration 添加到发行者 (Issuer) URL 后面。

端点
  1. Scope(可选):Logto 会在所有请求中自动包含所需的权限(Scopes)(openidprofileemail)。如果你的应用需要从 IdP 获取额外的权限或访问级别,可以以空格分隔的列表形式指定其他权限(Scopes)。

点击 Save 完成配置流程

步骤 3:附加权限 (Scopes)(可选)

Scope(权限)定义了你的应用从用户那里请求的权限,并控制你的应用可以从他们的 Microsoft Entra ID 账户访问哪些数据。请求 Microsoft Graph 权限需要在两端进行配置:

在 Microsoft Entra 管理中心:

  1. 导航到 Microsoft Entra ID > 应用注册,并选择你的应用程序。
  2. 前往 API 权限 > 添加权限 > Microsoft Graph > 委托权限
  3. 只选择你的应用所需的权限:
    • OpenID 权限:
      • openid(必需)- 登录用户
      • profile(必需)- 查看用户的基本资料
      • email(必需)- 查看用户的电子邮件地址
      • offline_access(可选)- 仅当你在 Logto 连接器中启用为持久 API 访问存储令牌并需要获取用于长期访问 Microsoft Graph API 的刷新令牌 (Refresh token) 时才需要。
    • API 访问(可选):添加你的应用所需的其他权限。常见的 Microsoft Graph 权限包括 Mail.ReadCalendars.ReadFiles.Read 等。浏览 Microsoft Graph 权限参考 以查找可用权限。
  4. 点击 添加权限 以确认选择。
  5. 如果你的应用需要某些权限的管理员同意,点击 为[你的组织]授予管理员同意
添加 Microsoft API 权限

在 Logto Microsoft Entra ID 连接器中:

  1. Logto 会自动包含 openidprofileemail scope(权限),以获取基本的用户身份信息。如果你只需要基本的用户信息,可以将 Scopes 字段留空。
  2. 如果你计划为持久 API 访问存储令牌,请在 Scopes 字段中添加 offline_access。此 scope(权限)可启用用于长期 API 访问的刷新令牌 (Refresh token)。
  3. 若需从 Microsoft Graph 请求更多数据,在 Scopes 字段中添加额外的 scope(权限)(用空格分隔)。请使用标准 scope 名称,例如:User.Read Mail.Read Calendars.Read
提示:

如果你的应用请求这些 scope(权限)以访问 Microsoft Graph API 并执行操作,请确保在 Logto Microsoft Entra ID 连接器中启用为持久 API 访问存储令牌。详见下一节。

步骤 4:存储令牌以访问 Microsoft API(可选)

如果你想访问 Microsoft Graph API 并在用户授权 (Authorization) 下执行操作,Logto 需要获取特定的 API 权限 (Scopes) 并存储令牌。

  1. 在你的 Microsoft Entra 管理中心 API 权限 (Scopes) 配置和 Logto Microsoft Entra ID 连接器中添加所需的权限 (Scopes)。
  2. 在 Logto Microsoft Entra ID 连接器中启用为持久 API 访问存储令牌。Logto 会将 Microsoft 访问令牌 (Access token) 和刷新令牌 (Refresh token) 安全地存储在 Secret Vault 中。
  3. 为确保返回刷新令牌 (Refresh token),请在你的 Microsoft Entra ID 应用权限 (Scopes) 中添加 offline_access 权限 (Scope),并在 Logto Microsoft Entra ID 连接器的权限 (Scopes) 中包含它。此权限 (Scope) 允许你的应用长时间访问资源。

步骤 5:设置邮箱域并启用 SSO 连接器

在连接器体验 (Experience) 选项卡中提供你组织的电子邮件 domains。这将为这些用户启用 SSO 连接器作为认证 (Authentication) 方法。

拥有指定域名电子邮件地址的用户将被专门限制只能使用你的 SSO 连接器作为他们唯一的认证 (Authentication) 方法。