milvus-logo
LFAI
Home
  • Guide d'administration

Authentification de l'accès utilisateur

Ce guide explique comment gérer l'authentification des utilisateurs dans Milvus, y compris l'activation de l'authentification, la connexion en tant qu'utilisateur et la modification des informations d'identification de l'utilisateur.

  • TLS et l'authentification utilisateur sont deux approches de sécurité distinctes. Si vous avez activé l'authentification utilisateur et TLS dans votre système Milvus, vous devez fournir un nom d'utilisateur, un mot de passe et des chemins d'accès aux fichiers de certificats. Pour plus d'informations sur l'activation de TLS, voir Chiffrement en transit.

  • Les extraits de code de cette page utilisent le nouveau MilvusClient (Python) pour interagir avec Milvus. De nouveaux SDK MilvusClient pour d'autres langages seront publiés dans de futures mises à jour.

Activer l'authentification de l'utilisateur

Pour activer l'authentification utilisateur pour votre serveur Milvus, définissez common.security.authorizationEnabled sur true dans le fichier de configuration Milvus milvus.yaml. Pour plus d'informations sur les configurations, voir Configurer Milvus avec Docker Compose.

...
common:
...
  security:
    authorizationEnabled: false
...

Pour activer l'authentification utilisateur pour votre serveur Milvus, définissez authorizationEnabled sur true dans le fichier de configuration Milvus values.yaml. Pour plus d'informations sur les configurations, voir Configurer Milvus avec Helm Charts.

...
extraConfigFiles:
  user.yaml: |+
    common:
      security:
        authorizationEnabled: true
...

Pour activer l'authentification, définissez spec.common.security.authorizationEnabled sur true dans le CRD Milvus. Pour plus d'informations sur le CRD Milvus, voir Configurer Milvus avec Milvus Operator.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  # Omit other fields ...
  config:
    common:
      security:
        authorizationEnabled: true

Connexion à Milvus avec authentification

Après avoir activé l'authentification, vous devez vous connecter à Milvus à l'aide d'un nom d'utilisateur et d'un mot de passe. Par défaut, l'utilisateur root est créé avec le mot de passe Milvus lorsque Milvus est lancé. Voici un exemple de connexion à Milvus avec l'authentification activée à l'aide de l'utilisateur par défaut root:

# use default `root` user to connect to Milvus

from pymilvus import MilvusClient

client = MilvusClient(
    uri='http://localhost:19530', # replace with your own Milvus server address
    token="root:Milvus"
) 
Si vous ne parvenez pas à fournir un jeton valide lorsque vous vous connectez à Milvus avec l'authentification activée, vous recevrez une erreur gRPC.

Créer un nouvel utilisateur

Une fois connecté en tant qu'utilisateur par défaut root, vous pouvez créer et authentifier un nouvel utilisateur comme suit :

# create a user
client.create_user(
    user_name="user_1",
    password="P@ssw0rd",
)

# verify the user has been created

client.describe_user("user_1")

# output
# {'user_name': 'user_1', 'roles': ()}

Pour plus d'informations sur la création d'utilisateurs, voir create_user().

Se connecter à Milvus avec un nouvel utilisateur

Se connecter en utilisant les informations d'identification de l'utilisateur nouvellement créé :

# connect to milvus with the newly created user

client = MilvusClient(
    uri="http://localhost:19530",
    token="user_1:P@ssw0rd"
)

Mise à jour du mot de passe de l'utilisateur

Modifier le mot de passe d'un utilisateur existant à l'aide du code suivant :

# update password

client.update_password(
    user_name="user_1",
    old_password="P@ssw0rd",
    new_password="P@ssw0rd123"
)

Pour plus d'informations sur la mise à jour des mots de passe des utilisateurs, voir update_password().

Si vous oubliez votre ancien mot de passe, Milvus fournit un élément de configuration qui vous permet de désigner certains utilisateurs comme super utilisateurs. Ainsi, l'ancien mot de passe n'est plus nécessaire lorsque vous réinitialisez le mot de passe.

Par défaut, le champ common.security.superUsers du fichier de configuration de Milvus est vide, ce qui signifie que tous les utilisateurs doivent fournir l'ancien mot de passe lors de la réinitialisation de leur mot de passe. Cependant, vous pouvez désigner des utilisateurs spécifiques comme super utilisateurs qui ne doivent pas fournir l'ancien mot de passe. Dans l'extrait ci-dessous, root et foo sont désignés comme super utilisateurs.

Vous devez ajouter l'élément de configuration ci-dessous dans le fichier de configuration Milvus qui régit l'exécution de votre instance Milvus.

common:
    security:
        superUsers: root, foo

Abandonner un utilisateur

Pour supprimer un utilisateur, utilisez la méthode drop_user().

client.drop_user(user_name="user_1")
Pour supprimer un utilisateur, vous ne pouvez pas être l'utilisateur supprimé. Sinon, une erreur sera soulevée.

Lister tous les utilisateurs

Répertorie tous les utilisateurs.

# list all users

client.list_users()

Limitations

  1. Le nom d'utilisateur ne doit pas être vide et ne doit pas dépasser 32 caractères. Il doit commencer par une lettre et ne doit contenir que des traits de soulignement, des lettres ou des chiffres.
  2. Le mot de passe doit comporter au moins 6 caractères et ne doit pas dépasser 256 caractères.

Prochaines étapes