外部身份管理
MinIO 通过以下 IDentity Provider (IDP) 支持多个外部身份管理器:
以下教程为选定的 IDP 软件提供了具体指导:
用户可以使用他们外部管理的凭据和相关的 minio-security-token-service API来对MinIO进行身份验证。 一旦身份验证成功,MinIO会尝试将用户与一个或多个配置的 策略 相关联。 没有与之关联的策略的用户在MinIO部署中没有权限。
OpenID 连接 (OIDC)
MinIO 支持使用 OpenID Connect (OIDC) 兼容的 IDentity Provider (IDP)(例如 Okta、KeyCloak、Dex、Google 或 Facebook)对用户身份进行外部管理。 配置外部的 IDP(IDentity Provider) 可启用单点登录工作流程,在访问MinIO之前,应用程序会对外部的 IDP(IDentity Provider) 进行身份验证。
MinIO使用 基于策略的访问控制(PBAC) 来定义经过身份验证的用户可以访问的操作和资源。 MinIO支持创建和管理 策略,外部管理的用户可以声明其拥有这些策略。
对于由外部OpenID 连接 (OIDC)兼容提供程序管理的身份,MinIO使用 JSON Web 令牌声明 来识别要分配给已验证用户的 策略。
MinIO默认查找 policy
声明并读取一个或多个策略列表以分配。 MinIO尝试将现有策略与JWT声明中指定的策略进行匹配。
如果MinIO部署中不存在指定的任何策略,则MinIO拒绝对该用户发出的所有操作进行授权。
例如,考虑具有以下键值分配的声明:
policy="readwrite_data,read_analytics,read_logs"
指定的策略声明指示MinIO将名称与 readwrite_data
、 read_analytics
和 read_logs
匹配的策略附加到已验证的用户。
有关将MinIO策略映射到OIDC管理的身份的更多信息,请参阅 OpenID访问和连接管理。
您可以使用 JWT调试工具 来解码返回的JWT令牌并验证用户属性是否包括指定的声明。 有关JWT声明的更多信息,请参见 RFC 7519: JWT Claim。 有关配置用户声明的说明,请参考您首选的OIDC提供程序的文档。
Active Directory / LDAP
MinIO支持使用Active Directory或LDAP(AD / LDAP)服务来外部管理用户身份。 配置外部身份提供程序(IDP)可以启用单点登录(SSO)工作流程, 在其中应用程序在访问MinIO之前对外部 IDP进行身份验证
查询Active Directory / LDAP服务
MinIO查询已配置的Active Directory / LDAP服务器以验证应用程序指定的凭据,并可选择返回用户所属的组列表。 这个过程被称为查找绑定模式,它使用具有最少权限的AD / LDAP用户,仅足以通过AD / LDAP服务器进行用户和组查找进行身份验证。
为AD / LDAP托管身份提供访问控制
MinIO使用 基于策略的访问控制(PBAC) 来定义经过身份验证的用户可以访问的操作和资源。 当使用Active Directory/LDAP服务器进行身份管理(认证)时,MinIO通过PBAC维护对访问的控制(授权)。
当用户使用其AD / LDAP凭据成功地进行身份验证时,MinIO会搜索所有明确与该用户的可分辨名称(DN)相关联的 策略。
具体而言,必须使用 mc idp ldap policy attach
命令将策略分配给具有匹配DN的用户。
MinIO还支持查询用户的AD/LDAP组成员身份。 MinIO尝试将现有策略与用户所属组的每个DN进行匹配。 经过身份验证的用户完整的权限集包括其明确分配和组继承的策略。 有关更多信息,请参阅 Group Lookup。
MinIO采用默认拒绝的行为,如果用户没有明确分配或组继承的策略,则无法访问MinIO部署中的任何资源。
MinIO为基本访问控制提供了 built-in policies。
您可以使用 mc admin policy create
命令创建新策略。
Group Lookup
MinIO支持查询Active Directory / LDAP服务器,以获取已认证用户所属的组列表。 MinIO尝试将每个组的DN与现有的 policies 进行匹配,并将每个匹配策略分配给已认证用户。
MinIO Operator控制台提供必要的字段来配置组查找,作为配置新的或现有的MinIO租户的AD/LDAP身份管理的一部分。