Rancher集成AzureAD认证

温馨提醒
总结摘要
本文详细介绍了如何将 Rancher 2.7.1 与 Azure Active Directory(Azure AD)进行集成,实现基于企业统一身份的单点登录(SSO)和访问控制。内容涵盖在 Azure 门户中注册 Rancher 应用、创建客户端密钥、配置 Directory.Read.All API 权限、获取租户 ID 与应用 ID,并在 Rancher UI 中完成标准(或中国)端点的认证配置。适用于希望提升容器平台安全性和管理效率的企业用户。

Rancher & Azure AD

Rancher是一款开源的容器管理平台,可让组织在多个环境中部署、管理和扩展容器化应用程序。Azure Active Directory(Azure AD)是一项基于云的身份和访问管理服务,可提供对应用程序和资源的安全访问。

将Rancher与Azure AD集成允许用户使用其Azure AD凭据进行身份验证和访问Rancher。它还使管理员能够根据其Azure AD角色和权限管理用户对Rancher的访问。

要设置集成,用户可以按照Rancher文档中概述的步骤进行操作。这涉及配置Rancher以使用Azure AD作为身份验证提供程序,创建Azure AD应用程序,并授予应用程序访问Rancher的权限。

设置集成后,用户可以使用其Azure AD凭据登录Rancher。他们还可以使用Azure AD组来管理对Rancher资源的访问。例如,管理员可以授予特定的Azure AD组访问特定的Rancher项目或集群的权限。

总体而言,将Rancher与Azure AD集成为组织提供了一种安全且无缝的方式来管理用户对容器化应用程序的访问。它使用户可以使用单一的凭据访问多个应用程序和资源,同时允许管理员维护对用户访问和权限的控制。

1.实验环境

Rancher v2.7.1开源版本

Azure(登录链接:https://portal.azure.cn/)

2.操作步骤

2.1 在Azure注册Rancher

在rancher中启用Azure AD之前,必须先向Azure注册Rancher。

1、以管理用户的身份登录到Microsoft Azure(https://portal.azure.com/)。后续步骤中需要使用到管理访问权限。

2、使用搜索功能打开Azure AD服务-App registrations(应用注册)服务。

image-20230411150501410

3、点击 New registration 并填写表单。

image-20230411150352765

image-20230411150945525

  • 输入名称:例如rancher
  • 受支持的账户类型中选择仅此组织目录(只AzureADTest -单租户)
  • 重定向URL中确保从下拉列表中选择Web,并在旁边的文本框中输入 Rancher Server的URL。Rancher Server URL后需要追加验证路径,例如<MY_RANCHER_URL>/verify-auth-azure。 可以在 Azure AD 身份验证页面(全局视图 > Authentication(身份验证) > Web)中找到你 Rancher 中的个性化 Azure Redirect URI(Reply URL)
  • 单击注册

2.2 创建客户端密文

在Azure门户中,创建一个客户端密文。Rancher将使用此密钥向Azure AD进行身份验证。

1、使用搜索功能打开Azure AD服务-App registrations(应用注册)服务。然后打开你在上一个步骤中创建的 Rancher 项。

image-20230411151753678 2、在左侧的导航窗格中,单击 Certificates&secrets(证书与密码)

3、单击 New client secret(新客户端密码)

image-20230411151950188 4、输入 Description(例如 Rancher)。

5、从 Expires 下的选项中选择密钥的持续时间。此下拉菜单设置的是密钥的到期日期。日期越短则越安全,但是在到期后你需要创建新密钥。 请注意,如果应用程序密钥已过期,用户将无法登录 Rancher,因此请在 Azure 中轮换密钥并在其过期前在 Rancher 中进行更新。

6、单击 Add(无需输入值,保存后会自动填充)。

7、稍后你将在 Rancher UI 中输入此密钥作为你的 Application Secret。这个值在关闭浏览器页面之后将无法再次访问,可以选择暂时保持或这再次创建。

2.3 设置Rancher所需要的权限

接下来在Azure中为Rancher设置API权限。

1、使用搜索功能打开Azure AD服务-App registrations(应用注册)服务。然后打开你在上一个步骤中创建的 Rancher 项。打开左侧导航栏中的API permissions(API权限)

2、单击Add a permission(添加权限)

3、从Microsoft Graph API中,选择以下应用程序权限: Directory.Read.All

image-20230411152838498

image-20230411152901954 4、返回左侧导航栏中的 API permissions(API权限)。在那里,单击 Grant admin consent(授予管理员同意)。然后单击 Yes。该应用程序的权限应如下所示:

select-req-permissions-575ef9d493f6f5414b65b0ff7eb14c03 (Rancher 不会验证你授予 Azure 应用程序的权限。我们仅支持使用 Directory.Read.All 应用程序权限。)

2.4 复制 Azure 应用数据

复制应用数据 1、获取Rancher租户ID

  • 使用搜索打开App registration(应用注册)
  • 找到创建的Rancher应用。
  • 复制Directory ID并将其作为TenantID粘贴到Rancher中。
  • 复制 Application (Client) ID 并将其作为 Application ID 粘贴到 Rancher 中。

2、端点通常选择Standard 或China(本次测试使用的是China,Standard验证未通过),你只需要输入 Tenant IDApplication IDApplication Secret

2.4.1 对于自定义端点

警告:Rancher 未测试也未完全支持自定义端点。

你还需要手动输入 Graph、Token 和 Auth Endpoints。

  • App registrations 中,点击 Endpoints

endpoints-a84e7e422cf92a96a602bf189985508f

  • 请注意以下端点 - 这些值将是你的 Rancher 端点值。请使用端点的 v1 版本。
    • Microsoft Graph API endpoint(Graph 端点)
    • OAuth 2.0 token endpoint (v1)(Token 端点)
    • OAuth 2.0 authorization endpoint (v1) (Auth 端点)

2.5 在 Rancher 中配置 Azure AD

在 Rancher UI 中,输入托管在 Azure 中的 AD 实例的信息以完成配置。

1、登录到 Rancher。

2、在左上角,单击 ☰ > 用户 & 认证

3、在左侧导航栏,单击认证

4、单击 AzureAD

5、使用你在[复制 Azure 应用数据](##复制 Azure 应用数据)时复制的信息,填写配置 Azure AD 账号的表单(Azure AD 帐户将被授予管理员权限,因为其详细信息将映射到 Rancher 本地主体帐户)。

对于标准或中国端点:

下表介绍了你在 Azure 门户中复制的值与 Rancher 中字段的映射:

Rancher 字段Azure 值
租户 IDDirectory ID
Application IDApplication ID
应用密文Key Value
端点https://login.microsoftonline.com/

对于自定义端点

下表将你的自定义配置值映射到 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~~

6、点击启用

结果:Azure Active Directory 身份验证已配置。

image-20230411164338120