跳到内容
+

身份验证

仅允许通过特定身份验证提供商对 Toolpad Studio 应用程序进行身份验证的用户访问。

您可以配置 Toolpad Studio 应用程序,以便用户必须使用特定的身份验证提供商登录才能访问它。

Toolpad Studio sign-in page

Toolpad Studio 登录页面

身份验证设置可以通过应用编辑器标题中的 授权 选项访问。

Authentication settings

身份验证设置

身份验证密钥

要启用任何授权功能,您必须设置一个随机字符串作为 TOOLPAD_AUTH_SECRET 环境变量中的密钥。

此密钥将用于哈希令牌、签名/加密 Cookie 和生成加密密钥。

您可以使用以下 openssl 命令在命令行上快速创建一个好的值

openssl rand -base64 32

身份验证提供商

在身份验证设置中,您可以设置一个或多个身份验证提供商,供用户登录,例如 GitHub 和 Google。

如果设置了任何身份验证提供商,则只有通过身份验证的用户才能访问您的 Toolpad Studio 应用程序。

每个身份验证提供商都有自己的配置选项,需要通过特定的环境变量进行设置。

GitHub

环境变量名                       描述
TOOLPAD_GITHUB_CLIENT_ID GitHub OAuth 应用客户端 ID。
TOOLPAD_GITHUB_CLIENT_SECRET GitHub OAuth 应用客户端密钥。

请查看以下官方说明以创建 GitHub OAuth 应用

在 GitHub OAuth 应用设置屏幕中的 授权回调 URL 选项中,使用您的应用程序的生产路径,后跟 /api/auth/callback/github,例如 https://mui.org.cn/api/auth/callback/github

GitHub callback URL configuration

GitHub 回调 URL 配置

Google

环境变量名                  描述
TOOLPAD_GOOGLE_CLIENT_ID Google OAuth 客户端 ID。
TOOLPAD_GOOGLE_CLIENT_SECRET Google OAuth 客户端密钥。

请查看以下官方说明以创建 Google OAuth 客户端 ID

在 Google OAuth 客户端设置屏幕的 已授权重定向 URI 选项下,请务必包含您的应用程序的生产路径,后跟 /api/auth/callback/google,例如 https://mui.org.cn/api/auth/callback/google

Google redirect URIs configuration

Google 重定向 URI 配置

Azure Active Directory(现 Entra ID)

环境变量名                  描述
TOOLPAD_AZURE_AD_CLIENT_ID Azure AD 应用程序(客户端)ID。
TOOLPAD_AZURE_AD_CLIENT_SECRET Azure AD 应用程序客户端密钥。
TOOLPAD_AZURE_AD_TENANT_ID Azure AD 应用程序目录(租户)ID

按照以下步骤配置您的 Azure AD 客户端并获取必要的环境变量

  1. 转到 https://portal.azure.com,搜索“Microsoft Entra ID”并转到它。

  2. 在左侧菜单中,转到 应用注册,然后选择 新注册 创建新应用。

  3. 注册应用程序时,在 重定向 URI 选项下,请务必包含您的应用程序的生产路径,后跟 /api/auth/callback/azure-ad,例如 https://mui.org.cn/api/auth/callback/azure-ad

Azure AD redirect URI configuration

Azure AD 重定向 URI 配置

  1. 创建应用程序后,转到 应用注册 中的应用程序页面,您可以在左侧菜单的 概述 选项下找到客户端 ID 和租户 ID。

  2. 转到 证书和机密,然后使用 新客户端机密 选项生成客户端机密。

使用 Azure AD 提供商,只有您的 Azure AD 应用程序的现有用户才能登录。

受限域名

在身份验证设置中,您可以指定一个或多个域名(例如 mui.com)以根据已登录用户的电子邮件地址限制用户身份验证。

如果设置了任何受限域名,则用户必须至少有一个电子邮件地址分配给他们当前的身份验证提供商,且该地址属于这些域名之一,否则他们将无法登录。