配置 Azure AD
Microsoft Graph API
Rancher 中的 Microsoft Graph API 流程正在不断发展。建议你使用最新的 2.7 补丁版本,该版本仍在积极开发中,并将持续获得新功能和改进。
新用户设置
如果你在 Azure 中托管了一个 Active Directory(AD)实例,你可以将 Rancher 配置为允许你的用户使用 AD 账号登录。你需要在 Azure 和 Rancher 中进行 Azure AD 外部身份验证。
注意事项
|
Azure Active Directory 配置概述
要将 Rancher 配置为允许用户使用其 Azure AD 账号进行身份验证,你需要执行多个步骤。在你开始之前,请查看下文操作步骤大纲。
在开始之前,打开两个浏览器选项卡:一个用于 Rancher,另一个用于 Azure 门户。这样,你可以将门户的配置值复制并粘贴到 Rancher 中。 |
1. 在 Azure 注册 Rancher
在 Rancher 中启用 Azure AD 之前,你必须先向 Azure 注册 Rancher。
-
以管理用户身份登录 Microsoft Azure。后续配置步骤中需要管理访问权限。
-
使用搜索功能打开 App registrations 服务。
-
点击 New registration 并填写表单。
-
输入 Name(例如
Rancher
)。 -
在 Supported account types 中,选择 Accounts in this organizational directory only (AzureADTest only - Single tenant)。这对应于旧版应用注册选项。
在更新后的 Azure 门户中,Redirect URI 与 Reply URL 的意思相同。为了将 Azure AD 与 Rancher 一起使用,你必须将 Rancher 列入 Azure 白名单(之前通过 Reply URL 完成)。因此,请确保使用你的 Rancher Server URL 填写 Redirect URI,以包含下面列出的验证路径。
-
在 Redirect URI 中,确保从下拉列表中选择 Web,并在旁边的文本框中输入 Rancher Server 的 URL。Rancher Server URL 后需要追加验证路径,例如
<MY_RANCHER_URL>/verify-auth-azure
。你可以在 Azure AD 身份验证页面(全局视图 > Authentication > Web)中找到你 Rancher 中的个性化 Azure Redirect URI(Reply URL)。
-
单击 Register。
-
此更改可能需要五分钟才能生效。因此,如果在配置 Azure AD 之后无法立即进行身份验证,请不要惊慌。 |
2. 创建客户端密文
在 Azure 门户中,创建一个客户端密文。Rancher 将使用此密钥向 Azure AD 进行身份验证。
-
使用搜索功能打开 App registrations 服务。然后打开你在上一个步骤中创建的 Rancher 项。
-
在导航窗格中,单击 Certificates & secrets。
-
单击 New client secret。
-
输入 Description(例如
Rancher
)。 -
从 Expires 下的选项中选择持续时间。此下拉菜单设置的是密钥的到期日期。日期越短则越安全,但需要你更频繁地创建新密钥。 请注意,如果检测到应用程序 Secret 已过期,用户将无法登录 Rancher。为避免此问题,请在 Azure 中轮换 Secret 并在过期前在 Rancher 中更新它。
-
稍后你将在 Rancher UI 中输入此密钥作为你的 Application Secret。由于你将无法在 Azure UI 中再次访问键值,因此请在其余设置过程中保持打开此窗口。
3. 设置 Rancher 所需的权限
接下来,在 Azure 中为 Rancher 设置 API 权限。
确保你设置了 Application 权限,而不是 Delegated 权限。否则,你将无法登录 Azure AD。 |
-
在导航窗格中,选择 API permissions。
-
单击 Add a permission。
-
从 Microsoft Graph API 中,选择以下 Application Permissions:
Directory.Read.All
。 -
返回导航栏中的 API permissions。在那里,单击 Grant admin consent。然后单击 Yes。该应用程序的权限应如下所示:
Rancher 不会验证你授予 Azure 应用程序的权限。你可以自由使用任何你所需的权限,只要这些权限允许 Rancher 使用 AD 用户和组。 具体来说,Rancher 需要允许以下操作的权限:
Rancher 执行这些操作来登录用户或搜索用户/组。请记住,权限必须是 下面是几个满足 Rancher 需求的权限组合示例:
|
4. 复制 Azure 应用数据
-
获取你的 Rancher 租户 ID。
-
使用搜索打开 App registrations。
-
找到你为 Rancher 创建的项。
-
复制 Directory ID 并将其作为 Tenant ID 粘贴到 Rancher 中。
-
-
获取你的 Rancher Application (Client) ID。
-
如果你还未在该位置,请使用搜索打开 App registrations。
-
在 Overview中,找到你为 Rancher 创建的条目。
-
复制 Application (Client) ID 并将其作为 Application ID 粘贴到 Rancher 中。
-
-
你的端点选项通常是 Standard 或 China。对于这两个选项,你只需要输入 Tenant ID、Application ID 和 Application Secret。
对于自定义端点:
Rancher 未测试也未完全支持自定义端点。 |
你还需要手动输入 Graph、Token 和 Auth Endpoints。
-
从 App registrations 中,点击 Endpoints:
-
以下端点将是你的 Rancher 端点值。请使用这些端点的 v1 版本。
-
Microsoft Graph API endpoint(Graph 端点)
-
OAuth 2.0 token endpoint (v1)(Token 端点)
-
OAuth 2.0 authorization endpoint (v1) (Auth 端点)
-
5. 在 Rancher 中配置 Azure AD
要完成配置,请在 Rancher UI 中输入你的 AD 实例信息。
-
登录到 Rancher。
-
在左上角,单击 ☰ > 用户 & 认证。
-
在左侧导航栏,单击认证。
-
单击 AzureAD。
-
使用你在复制 Azure 应用数据时复制的信息,填写配置 Azure AD 账号的表单。
Azure AD 帐户将被授予管理员权限,因为其详细信息将映射到 Rancher 本地主体帐户。在继续之前确保此权限级别是适当的。
对于标准或中国端点:
下表介绍了你在 Azure 门户中复制的值与 Rancher 中字段的映射:
Rancher 字段 Azure 值 租户 ID
Directory ID
Application ID
Application ID
应用密文
Key Value
端点
对于自定义端点:
下表将你的自定义配置值映射到 Rancher 字段:
Rancher 字段 Azure 值 Graph 端点
Microsoft Graph API Endpoint
Token 端点
OAuth 2.0 Token Endpoint
Auth 端点
OAuth 2.0 Authorization Endpoint
重要提示:在自定义配置中输入 Graph Endpoint 时,请从 URL 中删除 Tenant ID:
https://graph.microsoft.com/abb5adde-bee8-4821-8b03-e63efdc7701c
-
点击启用。
结果:Azure Active Directory 身份验证已配置。
从 Azure AD Graph API 迁移到 Microsoft Graph API
由于 Azure AD Graph API 已弃用并计划于 2023 年 6 月停用,管理员应更新他们的 Azure AD 应用程序以在 Rancher 中使用 Microsoft Graph API。 你需要在端点弃用之前完成操作。 如果在停用后 Rancher 仍配置为使用 Azure AD Graph API,用户可能无法使用 Azure AD 登录 Rancher。
在 Rancher UI 中更新端点
管理员需要在迁移下述端点之前创建一个 Rancher 备份。 |
离线环境
在离线环境中,由于 Graph Endpoint URL 正在更改,因此管理员需要确保其端点被列入白名单。
回滚迁移
如果你需要回滚迁移,请注意以下事项:
如果你使用现有的 Azure AD 设置升级到 Rancher v2.7.0+,并选择了禁用认证提供程序,你将无法恢复以前的设置。你也无法使用旧流程设置 Azure AD。你需要使用新的认证流程重新注册。由于 Rancher 现在使用 Graph API,因此用户需要在 Azure 门户中设置适当的权限。 |
Global:
Rancher 字段 | 已弃用的端点 |
---|---|
Auth 端点 |
https://login.microsoftonline.com/{tenantID}/oauth2/authorize |
端点 |
|
Graph 端点 |
|
Token 端点 |
Rancher 字段 | 新端点 |
---|---|
Auth 端点 |
https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/authorize |
端点 |
|
Graph 端点 |
|
Token 端点 |
https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/token |
中国:
Rancher 字段 | 已弃用的端点 |
---|---|
Auth 端点 |
|
端点 |
|
Graph 端点 |
|
Token 端点 |
Rancher 字段 | 新端点 |
---|---|
Auth 端点 |
https://login.partner.microsoftonline.cn/{tenantID}/oauth2/v2.0/authorize |
端点 |
|
Graph 端点 |
|
Token 端点 |
https://login.partner.microsoftonline.cn/{tenantID}/oauth2/v2.0/token |
已弃用的 Azure AD Graph API
重要提示:
Azure AD Graph API 已被弃用,Microsoft 将在 2023 年 6 月 30 日后随时停用它且不会另行通知。我们将更新我们的文档,以便在停用时向社区提供建议。Rancher 现在使用 Microsoft Graph API 来将 Azure AD 设置为外部身份验证提供程序。
如果你是新用户或希望进行迁移,请参阅新的流程说明: Rancher v2.7.0+。
如果你不想在 Azure AD Graph API 停用后升级到 v2.7.0+,你需要:
使用内置的 Rancher 身份认证,或者
使用另一个第三方身份认证系统并在 Rancher 中进行设置。请参阅身份验证文档,了解如何配置其他开放式身份验证提供程序。