SSO(单点登录)
您可以通过安装自定义插件或使用反向代理来实现 SSO (Single Sign-On) 用户认证到您的 MLflow 实例。
使用 OIDC 插件
MLflow 通过自定义插件支持 SSO (Single Sign-On) 进行认证。 mlflow-oidc-auth 插件为 MLflow 提供了 OIDC 支持。
功能:
- 基于 OIDC 的 MLflow UI 和 API 认证
- 通过 OIDC 提供商进行用户管理
- 用户级别访问控制
- 基于组的访问控制
- 基于正则表达式的权限管理(允许或拒绝访问特定的 MLflow 资源,并为用户或组分配权限)
- 支持会话、JWT 和基本认证方法
- 兼容 mlflow-client (基本认证)
注意
此插件由社区维护。
bash
pip install mlflow-oidc-auth[full]
mlflow server --app-name oidc-auth --host 0.0.0.0 --port 8080
反向代理模式
另一种常见的方法是将 MLflow 置于一个处理 SSO 并转发已认证请求的代理之后。最流行的方式是使用 oauth2-proxy 反向代理。
- 配置您的代理(NGINX、Traefik、Envoy 或云网关,例如带 OIDC 的 AWS ALB)以针对您的 IdP(Okta、Azure AD、Google Workspace)对用户进行认证。
- 成功登录后,注入用户身份标头(例如
X-Email或X-Forwarded-User),并仅允许已认证的会话访问。 - 运行不带 Basic Auth 应用的 MLflow,并依赖代理作为执行层,或者使用自定义中间件将传入的身份标头映射到 Basic Auth 用户。
此模式使 MLflow 保持无状态,同时将令牌验证和 MFA 执行委托给专门为此设计的系统。您可以在 此存储库中找到参考实现。
