MLflow 身份验证 Python API

mlflow.server.auth.client

class mlflow.server.auth.client.AuthServiceClient[源代码]

Bases: object

MLflow 跟踪服务器的客户端,已启用默认的基本身份验证插件。建议使用 mlflow.server.get_app_client() 来实例化此类。有关更多信息,请参阅 https://mlflow.org.cn/docs/latest/auth.html

create_experiment_permission(experiment_id: str, username: str, permission: str)[源代码]

为用户在实验上创建权限。

参数
  • experiment_id – 实验的 ID。

  • username – 用户名。

  • permission – 要授予的权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此实验用户对已有权限,或者权限无效。不需要 experiment_id 是一个现有实验。

返回

一个 mlflow.server.auth.entities.ExperimentPermission 对象。

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")
ep = client.create_experiment_permission("myexperiment", "newuser", "READ")

print(f"experiment_id: {ep.experiment_id}")
print(f"user_id: {ep.user_id}")
print(f"permission: {ep.permission}")
Output
experiment_id: myexperiment
user_id: 3
permission: READ
create_gateway_endpoint_permission(endpoint_id: str, username: str, permission: str)[源代码]

为用户在网关端点上创建权限。

参数
  • endpoint_id – 网关端点的 ID。

  • username – 用户名。

  • permission – 要授予的权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

返回

一个 mlflow.server.auth.entities.GatewayEndpointPermission 对象。

create_gateway_model_definition_permission(model_definition_id: str, username: str, permission: str)[源代码]

为用户在网关模型定义上创建权限。

参数
  • model_definition_id – 网关模型定义的 ID。

  • username – 用户名。

  • permission – 要授予的权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

返回

一个 mlflow.server.auth.entities.GatewayModelDefinitionPermission 对象。

create_gateway_secret_permission(secret_id: str, username: str, permission: str)[源代码]

为用户在网关密钥上创建权限。

参数
  • secret_id – 网关密钥的 ID。

  • username – 用户名。

  • permission – 要授予的权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

返回

一个 mlflow.server.auth.entities.GatewaySecretPermission 对象。

create_registered_model_permission(name: str, username: str, permission: str)[源代码]

为用户在注册模型上创建权限。

参数
  • name – 注册模型的名称。

  • username – 用户名。

  • permission – 要授予的权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此注册模型用户对已有权限,或者权限无效。不需要 name 是一个现有的注册模型。

返回

一个 mlflow.server.auth.entities.RegisteredModelPermission 对象。

create_scorer_permission(experiment_id: str, scorer_name: str, username: str, permission: str)[源代码]

为用户在评分器上创建权限。

参数
  • experiment_id – 包含评分器的实验的 ID。

  • scorer_name – 评分器的名称。

  • username – 用户名。

  • permission – 要授予的权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此评分器用户对已有权限。

返回

一个 mlflow.server.auth.entities.ScorerPermission 对象。

create_user(username: str, password: str)[源代码]

创建一个新用户。

参数
  • username – 用户名。

  • password – 用户的密码。不能为空字符串。

引发

mlflow.exceptions.RestException – 如果用户名已被占用。

返回

一个 mlflow.server.auth.entities.User 对象。

Example
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
user = client.create_user("newuser", "newpassword")
print(f"user_id: {user.id}")
print(f"username: {user.username}")
print(f"password_hash: {user.password_hash}")
print(f"is_admin: {user.is_admin}")
Output
user_id: 3
username: newuser
password_hash: REDACTED
is_admin: False
delete_experiment_permission(experiment_id: str, username: str)[源代码]

删除用户现有的实验权限。

参数
  • experiment_id – 实验的 ID。

  • username – 用户名。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此实验用户对没有权限,或者权限无效。请注意,即使权限已被删除,默认权限仍然有效。

Example
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")
client.create_experiment_permission("myexperiment", "newuser", "READ")
client.delete_experiment_permission("myexperiment", "newuser")
delete_gateway_endpoint_permission(endpoint_id: str, username: str)[源代码]

删除用户现有的网关端点权限。

参数
  • endpoint_id – 网关端点的 ID。

  • username – 用户名。

delete_gateway_model_definition_permission(model_definition_id: str, username: str)[源代码]

删除用户现有的网关模型定义权限。

参数
  • model_definition_id – 网关模型定义的 ID。

  • username – 用户名。

delete_gateway_secret_permission(secret_id: str, username: str)[源代码]

删除用户现有的网关密钥权限。

参数
  • secret_id – 网关密钥的 ID。

  • username – 用户名。

delete_registered_model_permission(name: str, username: str)[源代码]

删除用户现有的注册模型权限。

参数
  • name – 注册模型的名称。

  • username – 用户名。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此注册模型用户对没有权限,或者权限无效。请注意,即使权限已被删除,默认权限仍然有效。

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")
client.create_registered_model_permission("myregisteredmodel", "newuser", "READ")
client.delete_registered_model_permission("myregisteredmodel", "newuser")
delete_scorer_permission(experiment_id: str, scorer_name: str, username: str)[源代码]

删除用户现有的评分器权限。

参数
  • experiment_id – 包含评分器的实验的 ID。

  • scorer_name – 评分器的名称。

  • username – 用户名。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此评分器用户对没有权限。

delete_user(username: str)[源代码]

删除特定用户。

参数

username – 用户名。

引发

mlflow.exceptions.RestException – 如果用户不存在

Example
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")

client.delete_user("newuser")
get_experiment_permission(experiment_id: str, username: str)[源代码]

获取用户对实验的权限。

参数
  • experiment_id – 实验的 ID。

  • username – 用户名。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此实验用户对没有权限。请注意,即使没有权限,默认权限仍然有效。

返回

一个 mlflow.server.auth.entities.ExperimentPermission 对象。

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")
client.create_experiment_permission("myexperiment", "newuser", "READ")
ep = client.get_experiment_permission("myexperiment", "newuser")
print(f"experiment_id: {ep.experiment_id}")
print(f"user_id: {ep.user_id}")
print(f"permission: {ep.permission}")
输出
experiment_id: myexperiment
user_id: 3
permission: READ
get_gateway_endpoint_permission(endpoint_id: str, username: str)[源代码]

获取用户对网关端点的权限。

参数
  • endpoint_id – 网关端点的 ID。

  • username – 用户名。

返回

一个 mlflow.server.auth.entities.GatewayEndpointPermission 对象。

get_gateway_model_definition_permission(model_definition_id: str, username: str)[源代码]

获取用户对网关模型定义的权限。

参数
  • model_definition_id – 网关模型定义的 ID。

  • username – 用户名。

返回

一个 mlflow.server.auth.entities.GatewayModelDefinitionPermission 对象。

get_gateway_secret_permission(secret_id: str, username: str)[源代码]

获取用户对网关密钥的权限。

参数
  • secret_id – 网关密钥的 ID。

  • username – 用户名。

返回

一个 mlflow.server.auth.entities.GatewaySecretPermission 对象。

get_registered_model_permission(name: str, username: str)[源代码]

获取用户对注册模型的权限。

参数
  • name – 注册模型的名称。

  • username – 用户名。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此注册模型用户对没有权限。请注意,即使没有权限,默认权限仍然有效。

返回

一个 mlflow.server.auth.entities.RegisteredModelPermission 对象。

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")
client.create_registered_model_permission("myregisteredmodel", "newuser", "READ")
rmp = client.get_registered_model_permission("myregisteredmodel", "newuser")

print(f"name: {rmp.name}")
print(f"user_id: {rmp.user_id}")
print(f"permission: {rmp.permission}")
输出
name: myregisteredmodel
user_id: 3
permission: READ
get_scorer_permission(experiment_id: str, scorer_name: str, username: str)[源代码]

获取用户对评分器的权限。

参数
  • experiment_id – 包含评分器的实验的 ID。

  • scorer_name – 评分器的名称。

  • username – 用户名。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此评分器用户对没有权限。

返回

一个 mlflow.server.auth.entities.ScorerPermission 对象。

get_user(username: str)[源代码]

获取具有特定用户名的用户。

参数

username – 用户名。

引发

mlflow.exceptions.RestException – 如果用户不存在

返回

一个 mlflow.server.auth.entities.User 对象。

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")
user = client.get_user("newuser")

print(f"user_id: {user.id}")
print(f"username: {user.username}")
print(f"password_hash: {user.password_hash}")
print(f"is_admin: {user.is_admin}")
输出
user_id: 3
username: newuser
password_hash: REDACTED
is_admin: False
update_experiment_permission(experiment_id: str, username: str, permission: str)[源代码]

更新用户现有的实验权限。

参数
  • experiment_id – 实验的 ID。

  • username – 用户名。

  • permission – 要授予的新权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此实验用户对没有权限,或者权限无效

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")
client.create_experiment_permission("myexperiment", "newuser", "READ")
client.update_experiment_permission("myexperiment", "newuser", "EDIT")
update_gateway_endpoint_permission(endpoint_id: str, username: str, permission: str)[源代码]

更新用户现有的网关端点权限。

参数
  • endpoint_id – 网关端点的 ID。

  • username – 用户名。

  • permission – 要授予的新权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

update_gateway_model_definition_permission(model_definition_id: str, username: str, permission: str)[源代码]

更新用户现有的网关模型定义权限。

参数
  • model_definition_id – 网关模型定义的 ID。

  • username – 用户名。

  • permission – 要授予的新权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

update_gateway_secret_permission(secret_id: str, username: str, permission: str)[源代码]

更新用户现有的网关密钥权限。

参数
  • secret_id – 网关密钥的 ID。

  • username – 用户名。

  • permission – 要授予的新权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

update_registered_model_permission(name: str, username: str, permission: str)[源代码]

更新用户现有的注册模型权限。

参数
  • name – 注册模型的名称。

  • username – 用户名。

  • permission – 要授予的新权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此注册模型用户对没有权限,或者权限无效。

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")
client.create_registered_model_permission("myregisteredmodel", "newuser", "READ")
client.update_registered_model_permission("myregisteredmodel", "newuser", "EDIT")
update_scorer_permission(experiment_id: str, scorer_name: str, username: str, permission: str)[源代码]

更新用户现有的评分器权限。

参数
  • experiment_id – 包含评分器的实验的 ID。

  • scorer_name – 评分器的名称。

  • username – 用户名。

  • permission – 要授予的新权限。必须是 “READ”、“USE”、“EDIT”、“MANAGE” 和 “NO_PERMISSIONS” 之一。

引发

mlflow.exceptions.RestException – 如果用户不存在,或者此评分器用户对没有权限,或者权限无效。

update_user_admin(username: str, is_admin: bool)[源代码]

更新特定用户的管理员状态。

参数
  • username – 用户名。

  • is_admin – 新的管理员状态。

引发

mlflow.exceptions.RestException – 如果用户不存在

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")

client.update_user_admin("newuser", True)
update_user_password(username: str, password: str)[源代码]

更新特定用户的密码。

参数
  • username – 用户名。

  • password – 新密码。

引发

mlflow.exceptions.RestException – 如果用户不存在

示例
export MLFLOW_TRACKING_USERNAME=admin
export MLFLOW_TRACKING_PASSWORD=password
from mlflow.server.auth.client import AuthServiceClient

client = AuthServiceClient("tracking_uri")
client.create_user("newuser", "newpassword")

client.update_user_password("newuser", "anotherpassword")

mlflow.server.auth.entities

class mlflow.server.auth.entities.ExperimentPermission(experiment_id, user_id, permission)[源代码]

Bases: object

property experiment_id
classmethod from_json(dictionary)[源代码]
property permission
to_json()[源代码]
property user_id
class mlflow.server.auth.entities.GatewayEndpointPermission(endpoint_id, user_id, permission)[源代码]

Bases: object

property endpoint_id
classmethod from_json(dictionary)[源代码]
property permission
to_json()[源代码]
property user_id
class mlflow.server.auth.entities.GatewayModelDefinitionPermission(model_definition_id, user_id, permission)[源代码]

Bases: object

classmethod from_json(dictionary)[源代码]
property model_definition_id
property permission
to_json()[源代码]
property user_id
class mlflow.server.auth.entities.GatewaySecretPermission(secret_id, user_id, permission)[源代码]

Bases: object

classmethod from_json(dictionary)[源代码]
property permission
property secret_id
to_json()[源代码]
property user_id
class mlflow.server.auth.entities.RegisteredModelPermission(name, user_id, permission)[源代码]

Bases: object

classmethod from_json(dictionary)[源代码]
property name
property permission
to_json()[源代码]
property user_id
class mlflow.server.auth.entities.ScorerPermission(experiment_id, scorer_name, user_id, permission)[源代码]

Bases: object

property experiment_id
classmethod from_json(dictionary)[源代码]
property permission
property scorer_name
to_json()[源代码]
property user_id
class mlflow.server.auth.entities.User(id_, username, password_hash, is_admin, experiment_permissions=None, registered_model_permissions=None, scorer_permissions=None)[源代码]

Bases: object

property experiment_permissions
classmethod from_json(dictionary)[源代码]
property id
property is_admin
property password_hash
property registered_model_permissions
property scorer_permissions
to_json()[源代码]
property username