跳到主要内容

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 反向代理。

  1. 配置您的代理(NGINX、Traefik、Envoy 或云网关,例如带 OIDC 的 AWS ALB)以针对您的 IdP(Okta、Azure AD、Google Workspace)对用户进行认证。
  2. 成功登录后,注入用户身份标头(例如 X-EmailX-Forwarded-User),并仅允许已认证的会话访问。
  3. 运行不带 Basic Auth 应用的 MLflow,并依赖代理作为执行层,或者使用自定义中间件将传入的身份标头映射到 Basic Auth 用户。

此模式使 MLflow 保持无状态,同时将令牌验证和 MFA 执行委托给专门为此设计的系统。您可以在 此存储库中找到参考实现。

Example