跳转到主要内容

这是本节的多页打印视图。 .

返回本页常规视图.

身份与访问管理设置

本节页面记录了用于配置 MinIO 与身份与访问管理(IAM)方案协同工作的相关设置。 MinIO 支持的每种 IAM 方法都对应一个独立的设置页面。

1 - Active Directory / LDAP 设置

本页面说明通过 Active Directory 或 LDAP 服务启用外部身份管理所需的设置。 有关使用这些设置的教程,请参见 配置 MinIO 使用 Active Directory / LDAP 进行认证

警告

重要

RELEASE.2023-05-26T23-31-54Z 版本中新增:

相比使用配置设置,优先使用 mc idp ldap 命令将 MinIO 配置为使用 Active Directory 或 LDAP 进行身份管理。

MinIO 建议使用 mc idp ldap 命令执行 LDAP 管理操作。 这些命令提供了更好的校验能力和附加功能,同时提供与 identity_ldap 配置键相同的设置。 有关 mc idp ldap 的使用教程,请参见 配置 MinIO 使用 Active Directory / LDAP 进行认证

identity_ldap 配置设置仍可用于现有脚本和其他工具。

你可以通过以下方式建立或修改设置:

  • 在启动或重启 MinIO Server 之前,在宿主机系统上定义 环境变量。 如何定义环境变量,请参考所用操作系统的文档。
  • 使用 mc admin config set 定义 配置项

如果同时定义了环境变量和对应的配置项,MinIO 使用环境变量的值。

有些设置只有环境变量或配置项中的一种,而不是两者同时存在。

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

示例

MINIO_IDENTITY_LDAP_SERVER_ADDR="ldapserver.com:636"
说明

说明

srv_record_name 会自动识别端口。

如果你的 AD/LDAP 服务器使用 DNS SRV Records,请 不要server_addr 值后附加端口号。 SRV 请求在返回可用服务器列表时会自动包含端口号。

identity_ldap

mc-conf

使用 mc admin config set 定义 LDAP 时,以下设置为必需项:

  • enabled
  • server_addr
  • lookup_bind_dn
  • lookup_bind_dn_password
  • user_dn_search_base_dn
  • user_dn_search_filter
mc admin config set identity_ldap                        \
   enabled="true"                                        \
   server_addr="ad-ldap.example.net/"                    \
   lookup_bind_dn="cn=miniolookupuser,dc=example,dc=net" \
   lookup_bind_dn_password="userpassword"                \
   user_dn_search_base_dn="dc=example,dc=net"            \
   user_dn_search_filter="(&(objectCategory=user)(sAMAccountName=%s))"

设置

服务器地址

必需

MINIO_IDENTITY_LDAP_SERVER_ADDR

envvar

指定 Active Directory / LDAP server 的主机名。例如:

ldapserver.com:636
说明

srv_record_name 会自动识别端口

如果你的 AD/LDAP server 使用 DNS SRV Records,则 不要server_addr 的值后追加端口号。 SRV 请求在返回可用服务器列表时会自动包含端口号。

identity_ldap server_addr

mc-conf

指定 Active Directory / LDAP server 的主机名。例如:

ldapserver.com:636
说明

srv_record_name 会自动识别端口

如果你的 AD/LDAP server 使用 DNS SRV Records,则 不要server_addr 的值后追加端口号。 SRV 请求在返回可用服务器列表时会自动包含端口号。

Lookup Bind DN

必需

MINIO_IDENTITY_LDAP_LOOKUP_BIND_DN

envvar

identity_ldap lookup_bind_dn

mc-conf

指定 MinIO 在查询 AD/LDAP server 时所使用的 AD/LDAP 账户 Distinguished Name (DN)。 这会启用对 AD/LDAP server 的 Lookup-Bind 认证。

该 DN 账户应为只读访问账号,并具备足够权限以支持执行用户和组查询。

Lookup Bind 密码

必需

MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD

envvar

identity_ldap lookup_bind_password

mc-conf

指定 Lookup-Bind 用户账户的密码。

说明

变更: RELEASE.2023-06-23T20-26-00Z

当通过 mc admin config get 返回此值时,MinIO 会将其脱敏。

用户 DN 搜索基准 DN

必需

MINIO_IDENTITY_LDAP_USER_DN_SEARCH_BASE_DN

envvar

identity_ldap user_dn_search_base_dn

mc-conf

指定 MinIO 在查询与认证客户端所提供凭证相匹配的用户凭证时所使用的基础 Distinguished Name (DN)。

多个 DN 之间请使用分号(;)分隔。

例如:

cn=miniousers,dc=myldapserver,dc=net;ou=swengg,dc=min,dc=io

支持 Lookup-Bind 模式。

用户 DN 搜索过滤器

必需

MINIO_IDENTITY_LDAP_USER_DN_SEARCH_FILTER

envvar

identity_ldap user_dn_search_filter

mc-conf

指定 MinIO 在查询与认证客户端所提供凭证相匹配的用户凭证时所使用的 AD/LDAP 搜索过滤器。

使用 %s 替换字符将客户端指定的用户名插入搜索字符串。例如:

(userPrincipalName=%s)

用户 DN 属性

可选

MINIO_IDENTITY_LDAP_USER_DN_ATTRIBUTES

envvar

identity_ldap user_dn_attributes

mc-conf

说明

新增: RELEASE.2024-06-06T09-36-42Z

用户 DN 属性的逗号分隔列表。

一些有效值包括 uid,cn,mail,sshPublicKey

如果要为 LDAP 用户启用公钥认证,请将 sshPublicKey 作为 DN 属性传入。 随后,用户即可使用传入的 SSH Public Key 登录 SFTP server。

mc idp ldap update ALIAS user_dn_attributes=sshPublicKey

启用

可选

此设置没有环境变量选项。 请改用配置设置。

identity_ldap enabled

mc-conf

将其设置为 false 可禁用 AD/LDAP 配置。

若为 false,应用程序将无法生成 STS 凭证,也无法通过已配置的提供者向 MinIO 进行身份验证。

默认为 true(即 “enabled”)。

组搜索过滤器

可选

MINIO_IDENTITY_LDAP_GROUP_SEARCH_FILTER

envvar

identity_ldap group_search_filter

mc-conf

指定用于为已认证用户执行组查询的 AD/LDAP 搜索过滤器。

使用 %s 替换字符将客户端指定的用户名插入搜索字符串。 使用 %d 替换字符将客户端指定用户名对应的 Distinguished Name 插入搜索字符串。

例如:

(&(objectclass=groupOfNames)(memberUid=%s))

在提供 AD/LDAP 组搜索过滤器时,应将其配置为仅返回支持认证所需的最少相关组。 返回大量组成员关系的过滤器会增加相关调用和资源的体量。 对大请求体或大响应体敏感的功能可能因此出现意外行为。

在提供 AD/LDAP 组搜索过滤器时,应配置一个仅返回满足身份验证需求的最小相关组集合的过滤器。 返回大量组分配信息的过滤器会增加相关调用和资源消耗。 对大体积请求或响应体敏感的功能可能因此出现非预期行为。

组搜索基准 DN

可选

MINIO_IDENTITY_LDAP_GROUP_SEARCH_BASE_DN

envvar

identity_ldap group_search_base_dn

mc-conf

指定 MinIO 在执行组查询时所使用的组搜索基础 Distinguished Names 列表,多个值之间使用分号(;)分隔。

例如:

cn=miniogroups,dc=myldapserver,dc=net;ou=swengg,dc=min,dc=io

TLS 跳过校验

可选

MINIO_IDENTITY_LDAP_TLS_SKIP_VERIFY

envvar

identity_ldap tls_skip_verify

mc-conf

指定 on 可在不验证的情况下信任 AD/LDAP server 的 TLS 证书。 如果 AD/LDAP server 的 TLS 证书由不受信任的证书颁发机构签名 (例如自签名),则可能需要此选项。

默认值为 off

服务器不安全模式

可选

MINIO_IDENTITY_LDAP_SERVER_INSECURE

envvar

identity_ldap server_insecure

mc-conf

指定 on 可允许与 AD/LDAP server 建立未加密的连接(非 TLS)。

MinIO 会以明文形式将 AD/LDAP 用户凭证发送到 AD/LDAP server,因此 必须 启用 TLS,才能防止凭证在传输过程中被读取。 启用此选项会带来安全风险,因为任何能够访问网络流量的用户都可能看到未加密的明文 凭证。

默认值为 off

服务器 Start TLS

可选

MINIO_IDENTITY_LDAP_SERVER_STARTTLS

envvar

identity_ldap server_starttls

mc-conf

指定 on 可启用到 AD/LDAP server 的 StartTLS 连接。

默认值为 off

有关 StartTLS 的更多信息,请参见 LDAP RFC 4511 specification 第 4.14 节。

SRV 记录名称

可选

说明

新增: RELEASE.2022-12-12T19-27-27Z

MINIO_IDENTITY_LDAP_SRV_RECORD_NAME

envvar

identity_ldap srv_record_name

mc-conf

指定适当的值,以允许 MinIO 通过 DNS SRV record 请求选择 AD/LDAP server。

启用后,MinIO 会通过以下方式选择 AD/LDAP server:

  • 按标准命名约定构造目标 SRV 记录名称。
  • 请求可用的 AD/LDAP server 列表。
  • 根据优先级和权重选择合适的目标。

下面的配置示例假定 AD/LDAP server 地址设为 example.com,SRV 记录协议为 _tcp

对于以 _ldap 开头的 SRV 记录名称,指定 ldap。 构造出的 DNS SRV 记录名称类似如下:

_ldap._tcp.example.com

对于以 _ldaps 开头的 SRV 记录名称,指定 ldaps。 构造出的 DNS SRV 记录名称类似如下:

_ldaps._tcp.example.com

如果你的 DNS SRV 记录名称使用了其他 service 或 protocol 名称,请指定 on, 并将完整记录名称作为 LDAP server 地址提供。 例如:_ldapserver._specialtcp.example.com

有关 DNS SRV 记录的更多信息,请参见 DNS SRV Records for LDAP

说明

DNS SRV 记录配置中的 server 地址

指定的 server 名称 不得 包含端口号。 这与标准 AD/LDAP 配置不同,后者要求提供端口号。

关于如何配置 AD/LDAP server 地址,请参见 server_addrMINIO_IDENTITY_LDAP_SERVER_ADDR

备注

可选

MINIO_IDENTITY_LDAP_COMMENT

envvar

identity_ldap identity_ldap comment

mc-conf

指定要附加到 AD/LDAP 配置上的注释。

2 - OpenID 身份管理设置

本页面记录了如何使用与 OpenID Connect (OIDC) 兼容的提供方来启用外部身份管理的相关设置。 有关如何使用这些设置的教程,请参见 OpenID Connect 访问管理

你可以通过以下方式建立或修改设置:

  • 在启动或重启 MinIO Server 之前,在宿主机系统上定义 环境变量。 如何定义环境变量,请参考所用操作系统的文档。
  • 使用 mc admin config set 定义 配置项

如果同时定义了环境变量和对应的配置项,MinIO 使用环境变量的值。

有些设置只有环境变量或配置项中的一种,而不是两者同时存在。

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

示例

MINIO_IDENTITY_OPENID_CONFIG_URL="https://openid-provider.example.net/.well-known/openid-configuration"

identity_openid

mc-conf

使用 mc admin config set 设置或更新 OpenID 配置。 config_url 参数为 必需。 其他可选参数请以空白字符(" ")分隔的列表形式指定。

mc admin config set identity_openid                                               \
  config_url="https://openid-provider.example.net/.well-known/openid-configuration" \
  [ARGUMENT="VALUE"] ...

设置

配置 URL

必需

MINIO_IDENTITY_OPENID_CONFIG_URL

envvar

identity_openid config_url

mc-conf

指定与 OIDC 兼容的 provider 的 discovery document URL。

OIDC Discovery URL 通常类似于:

https://openid-provider.example.net/.well-known/openid-configuration

启用

可选

此设置没有环境变量选项。 请改用配置项。

identity_openid enabled

mc-conf

设置为 false 可禁用 OpenID 配置。

如果设置为 false,应用程序将无法使用已配置的提供方生成 STS 凭证或通过其他方式向 MinIO 认证。

默认值为 true(即“启用”)。

客户端 ID

可选

MINIO_IDENTITY_OPENID_CLIENT_ID

envvar

identity_openid client_id

mc-conf

指定 MinIO 在使用与 OIDC 兼容的 provider 验证用户凭证时 所使用的唯一公开标识符。

客户端密钥

可选

MINIO_IDENTITY_OPENID_CLIENT_SECRET

envvar

identity_openid client_secret

mc-conf

指定 MinIO 在使用与 OIDC 兼容的 provider 验证用户凭证时 所使用的 client secret。根据 provider 的不同,此字段可能是可选的。

说明

变更: RELEASE.2023-06-23T20-26-00Z

当通过 mc admin config get 返回此值时,MinIO 会将其脱敏。

角色策略

可选

此设置与 Claim Name 设置互斥。

MINIO_IDENTITY_OPENID_ROLE_POLICY

envvar

identity_openid role_policy

mc-conf

指定逗号分隔的 策略名称 列表,用于该 provider 的所有认证请求 中的 RoleArn。指定的一个或多个策略必须已经存在于 MinIO Server 上。

要使用此 OIDC 配置,你必须在 STS 请求体中指定对应的 RoleArn

声明名称

可选

此设置与 Role Policy 设置互斥。

MINIO_IDENTITY_OPENID_CLAIM_NAME

envvar

identity_openid claim_name

mc-conf

指定 JWT Claim 的名称,MinIO 使用该 Claim 来识别应附加到已认证用户上的 策略

该 Claim 可以包含一个或多个逗号分隔的策略名称,以附加给用户。该 Claim 至少 必须包含一个策略,否则该用户在 MinIO server 上将没有任何权限。

默认值为 policy

声明前缀

可选

此设置已弃用,并已在 RELEASE.2024-07-13T01-46-15Z 起移除。 请改用 MINIO_IDENTITY_OPENID_CLAIM_NAME

MINIO_IDENTITY_OPENID_CLAIM_PREFIX

envvar

identity_openid claim_prefix

mc-conf

指定应用到所给 Claim 名称上的 JWT Claim 命名空间前缀。

显示名称

可选

MINIO_IDENTITY_OPENID_DISPLAY_NAME

envvar

identity_openid display_name

mc-conf

指定 MinIO Console 在登录页面上显示给用户的名称。

作用域

可选

MINIO_IDENTITY_OPENID_SCOPES

envvar

identity_openid scopes

mc-conf

指定逗号分隔的 scopes 列表。 默认使用 discovery document 中公布的 scopes。

重定向 URI

可选

此设置已弃用,并已在 RELEASE.2024-07-13T01-46-15Z 起移除。 请改用 MINIO_BROWSER_REDIRECT_URL

MINIO_IDENTITY_OPENID_REDIRECT_URI

envvar

identity_openid redirect_uri

mc-conf

警告

重要

该参数已在 RELEASE.2023-02-27T18-10-45Z 中移除。 请改用 MINIO_BROWSER_REDIRECT_URL 环境变量

MinIO Console 默认使用发起认证请求的节点主机名。 对于位于负载均衡器或反向代理之后的 MinIO 部署,请指定该字段,以确保 OIDC provider 将认证响应返回到正确的 MinIO Console URL。 其中应包含 Console 主机名、端口以及 /oauth_callback

http://minio.example.net:consoleport/oauth_callback

请确保在启动 MinIO Server 时使用 --console-address 选项,以设置固定的 Console 监听端口。 如果省略该选项,默认行为是在启动时随机选择端口号。

指定的 URI 必须 与 provider 上批准的某个 redirect / callback URI 匹配。 更多信息请参见 OpenID Authentication Request

动态 URI 重定向

可选

MINIO_IDENTITY_OPENID_REDIRECT_URI_DYNAMIC

envvar

identity_openid redirect_uri_dynamic

mc-conf

MinIO Console 默认会将发起认证请求的节点主机名作为重定向 URI 的一部分, 并将其提供给 OIDC provider。 对于位于使用轮询协议的负载均衡器之后的 MinIO 部署,这可能导致负载均衡器将响应 返回给与原始客户端不同的 MinIO 节点。

将此选项指定为 on,可让 MinIO Console 使用原始请求中的 Host 头来构造 传递给 OIDC provider 的重定向 URI。 默认值为 off

用户信息

可选

MINIO_IDENTITY_OPENID_CLAIM_USERINFO

envvar

identity_openid claim_userinfo

mc-conf

允许 MinIO 从已认证用户的 UserInfo Endpoint 获取 claims。

有效值为 onoff

提供方

可选

MINIO_IDENTITY_OPENID_VENDOR

envvar

identity_openid vendor

mc-conf

指定 OIDC Vendor,以启用该 vendor 的特定受支持行为。

支持以下值:

  • keycloak

Keycloak Realm

可选

此设置要求将 OpenID Vendor 设置定义为 keycloak

MINIO_IDENTITY_OPENID_KEYCLOAK_REALM

envvar

identity_openid keycloak_realm

mc-conf

指定用于 Keycloak Admin API 操作的 Keycloak Realm,例如 main

Keycloak 管理 URL

可选

此设置要求将 OpenID Vendor 设置定义为 keycloak

MINIO_IDENTITY_OPENID_KEYCLOAK_ADMIN_URL

envvar

identity_openid keycloak_admin_url

mc-conf

指定 Keycloak Admin API URL。 如果配置为定期校验已认证的 Keycloak 用户是否处于激活 / 存在状态,MinIO 可以 使用该 URL。 例如,https://keycloak-endpoint:port/admin/

注释

可选

MINIO_IDENTITY_OPENID_COMMENT

envvar

identity_openid comment

mc-conf

指定要附加到与 OIDC 兼容 provider 配置上的注释。

3 - Silo 身份管理插件设置

本页介绍如何通过 MinIO Identity Management Plugin 启用外部身份管理的相关设置。 有关如何使用这些设置的教程,请参阅 MinIO External Identity Management Plugin

你可以通过以下方式建立或修改设置:

  • 在启动或重启 MinIO Server 之前,在宿主机系统上定义 环境变量。 如何定义环境变量,请参考所用操作系统的文档。
  • 使用 mc admin config set 定义 配置项

如果同时定义了环境变量和对应的配置项,MinIO 使用环境变量的值。

有些设置只有环境变量或配置项中的一种,而不是两者同时存在。

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

示例

配置 MinIO Identity Management Plugin 时,至少必须定义所有 必需 设置。 以下示例展示了最小必需配置。

MINIO_IDENTITY_PLUGIN_URL="https://authservice.example.net:8080/auth"
MINIO_IDENTITY_PLUGIN_ROLE_POLICY="ConsoleUser"

identity_plugin

mc-conf

使用 mc admin config set 创建或更新身份管理插件配置。 identity_plugin url 参数为必填项。 其他可选参数以空白字符(” “)分隔的列表形式指定。

mc admin config set identity_plugin                  \
   url="https://external-auth.example.net:8080/auth" \
   role_policy="consoleAdmin"                        \
   [ARGUMENT=VALUE] ...

设置

URL

必需

MINIO_IDENTITY_PLUGIN_URL

envvar

identity_plugin url

mc-conf

外部身份管理服务的 webhook endpoint (https://authservice.example.net:8080/auth)。

角色策略

必需

MINIO_IDENTITY_PLUGIN_ROLE_POLICY

envvar

identity_plugin role_policy

mc-conf

指定要分配给已认证用户的 MinIO 策略 列表,多个策略之间 使用逗号分隔。

启用

可选

此设置不提供环境变量选项。

identity_plugin enabled

mc-conf

设置为 false 以禁用身份提供方配置。

如果设置为 false,应用程序将无法生成 STS 凭证,也无法通过已配置的提供方对 MinIO 进行身份验证。

默认为 true 或 “enabled”。

令牌

可选

MINIO_IDENTITY_PLUGIN_TOKEN

envvar

identity_plugin token

mc-conf

提供给已配置 webhook endpoint 的认证令牌。

请以字符串形式指定受支持的 HTTP Authentication scheme, 例如 "Bearer TOKEN"。 MinIO 会通过 HTTP Authorization 头发送该令牌。

角色 ID

可选

MINIO_IDENTITY_PLUGIN_ROLE_ID

envvar

identity_plugin role_id

mc-conf

指定 MinIO 用于为该 identity manager 生成 ARN 的唯一 ID。 在生成 ARN 时,MinIO 会自动在指定 ID 前添加 idmp- 前缀。

如果省略此项,MinIO 会自动生成该 ID,并将完整 ARN 输出到 server 日志中。

注释

可选

MINIO_IDENTITY_PLUGIN_COMMENT

envvar

identity_plugin comment

mc-conf

指定要附加到身份配置上的注释。

4 - Silo 访问管理插件设置

本页说明如何配置 MinIO Access Management Plugin 以启用外部授权管理。 有关这些设置的使用教程,请参见 MinIO 外部访问管理插件

你可以通过以下方式建立或修改设置:

  • 在启动或重启 MinIO Server 之前,在宿主机系统上定义 环境变量。 如何定义环境变量,请参考所用操作系统的文档。
  • 使用 mc admin config set 定义 配置项

如果同时定义了环境变量和对应的配置项,MinIO 使用环境变量的值。

有些设置只有环境变量或配置项中的一种,而不是两者同时存在。

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

示例

在设置 MinIO Access Management 插件时,至少必须定义所有 Required 设置。 此处示例展示了最小必需配置。

MINIO_POLICY_PLUGIN_URL="https://authzservice.example.net:8080/authz"

policy_plugin

mc-conf

使用 mc admin config set 命令创建或更新访问管理插件配置。 policy_plugin url 参数为必填。 其他可选参数请以空白字符(” “)分隔的列表形式指定。

mc admin config set policy_plugin                     \
   url="https://authzservice.example.net:8080/authz"  \
   [ARGUMENT=VALUE] ...

设置

URL

必需

MINIO_POLICY_PLUGIN_URL

envvar

policy_plugin url

mc-conf

外部访问管理服务的 webhook endpoint (https://authzservice.example.net:8080/authz)。

认证令牌

可选

MINIO_POLICY_PLUGIN_AUTH_TOKEN

envvar

policy_plugin auth_token

mc-conf

提供给已配置 webhook endpoint 的认证令牌。

请以字符串形式指定受支持的 HTTP Authentication scheme, 例如 "Bearer TOKEN"。 MinIO 会通过 HTTP Authorization 头发送该令牌。

HTTP2

可选

MINIO_POLICY_PLUGIN_ENABLE_HTTP2

envvar

policy_plugin enable_http2

mc-conf

为连接已配置的 webhook 服务启用实验性的 HTTP2 支持。

默认值为 off

注释

可选

MINIO_POLICY_PLUGIN_COMMENT

envvar

policy_plugin comment

mc-conf

指定要附加到外部访问管理配置上的注释。