← Retour à l'accueil

🔐 Architecture d'Authentification OpenShift AI 2.22

🎯 Vue d'ensemble - OpenShift AI 2.22 / OpenShift 4.19

OpenShift AI 2.22 utilise une architecture multicouche pour l'authentification des services d'inférence, s'appuyant sur le serveur OAuth intégré d'OpenShift 4.19, les Service Accounts Kubernetes, et des composants spécialisés comme Authorino pour la sécurisation des modèles ML via KServe.

🏗️ Architecture des composants d'authentification

🌐 Couche Utilisateur & Interface

OpenShift AI Dashboard
Interface web pour la gestion des projets, modèles et authentification
CLI oc
Interface en ligne de commande pour l'authentification et la gestion
oc whoami -t
⬇️

🔐 Couche d'authentification OAuth (OpenShift 4.19)

OAuth Server (OpenShift)
Serveur OAuth intégré - génère et valide les tokens JWT
Durée par défaut: 24 heures
Identity Providers
LDAP, SSO, OIDC - sources d'identité configurables
Fournisseurs externes
OAuth Clients
openshift-challenging-client
openshift-browser-client
console
⬇️

🛡️ Couche Autorisation & Sécurité

Authorino (Optionnel)
Fournisseur d'autorisation pour l'authentification des modèles KServe
Validation des tokens
RBAC (Kubernetes)
Contrôle d'accès basé sur les rôles
Permissions granulaires
Service Accounts
Comptes de service avec tokens automatiques
Isolation par namespace
OAuth Proxy 🆕
Model Registry (Nouveau 2.22)
Remplace Authorino pour le registre
⬇️

🚀 Couche Service Mesh & Routage

OpenShift Service Mesh (Istio)
Gestion du trafic, sécurité, et observabilité
mTLS automatique
Knative Serving
Plateforme serverless pour le déploiement des modèles
Autoscaling intelligent
⬇️

🤖 Couche Serving des Modèles

KServe (Single-Model)
Serving de modèles individuels avec autoscaling
Support LLMs et GPU
ModelMesh (Multi-Model)
Serving optimisé pour plusieurs modèles
Ressources partagées

🔑 Flux d'authentification Token

  1. Connexion utilisateur → OAuth Server OpenShift
  2. Génération token JWT → Associé au Service Account
  3. Déploiement modèle → Token automatique via KServe
  4. Requête d'inférence → Validation via Authorino + Service Mesh
  5. Accès autorisé → Traitement par le runtime du modèle

📋 Rôles des composants principaux

🎛️ Dashboard

  • Interface de gestion des projets
  • Déploiement de modèles
  • Visualisation des tokens
  • Configuration des permissions

🔐 OAuth Server

  • Génération tokens JWT
  • Validation des identités
  • Gestion des sessions
  • Intégration identity providers

🔐 Authorino

  • Validation des tokens pour KServe
  • Politiques d'autorisation
  • Intégration Service Mesh
  • Protection des endpoints

🚀 KServe

  • Orchestration des modèles
  • Autoscaling serverless
  • Gestion des runtimes
  • Endpoints d'inférence
# Exemples de commandes d'authentification

# Récupération du token utilisateur
oc whoami -t

# Connexion avec token
oc login --token=sha256~...

# Requête d'inférence authentifiée
curl -X POST https://model-endpoint.apps.cluster.com/v1/models/mon-modele:predict \
  -H "Authorization: Bearer $(oc whoami -t)" \
  -H "Content-Type: application/json" \
  -d '{"instances": [{"data": "exemple"}]}'

# Récupération du token depuis secret de modèle
oc get secret <token-secret> -o jsonpath='{.data.token}' | base64 -d

# Configuration OAuth avec durée personnalisée
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
  name: cluster
spec:
  tokenConfig:
    accessTokenMaxAgeSeconds: 172800  # 48 heures

⚡ Configuration des tokens OAuth

🆕 Nouveautés authentification OpenShift AI 2.22

🔒 Sécurité et bonnes pratiques

🛠️ Guide de dépannage authentification

# Vérifier la validité d'un token
oc auth can-i get pods --token=<your-token>

# Tester l'endpoint d'inférence
curl -I -H "Authorization: Bearer <token>" <inference-endpoint>

# Lister les tokens OAuth utilisateur
oc get useroauthaccesstokens

# Vérifier les logs Service Mesh
oc logs -n istio-system deployment/istiod | grep -i auth

# Supprimer un token expiré
oc delete useroauthaccesstoken <token-name>