Critères relatifs aux acteurs

Les applications d'entreprise modernes s'appuient de plus en plus sur des scénarios de délégation dans lesquels un service ou un agent agit au nom d'un utilisateur. Qu'il s'agisse d'un assistant IA accédant à votre agenda, d'un microservice appelant des API avec les autorisations de l'utilisateur ou d'un cas de procuration, la délégation sécurisée est essentielle. IBM® Verify offre désormais une plus grande souplesse dans la manière dont vous autorisez ces relations de délégation grâce à des critères d'acteurs configurables.

Le défi posé par les plateformes d'échange de tokens traditionnelles

OAuth 2.0 L'échange de jetons (RFC 8693) permet la délégation en donnant à un acteur la possibilité d'obtenir des jetons pour le compte d'un sujet (généralement un utilisateur). Traditionnellement, cette autorisation est gérée par le biais d'une may_act déclaration intégrée au jeton du sujet, qui précise exactement quels acteurs sont autorisés à agir en son nom. Bien que cette approche soit efficace, elle pose plusieurs difficultés d'ordre pratique :
  • Flexibilité limitée : il est difficile de définir un ensemble d'acteurs autorisés tout en garantissant la sécurité. Vous devez connaître l'identité exacte de l'acteur au moment de l'émission du jeton sujet.
  • Gestion complexe des jetons : les applications doivent effectuer des étapes supplémentaires pour intégrer la may_act revendication dans les jetons de sujet.

Critères relatifs aux acteurs

IBM Verify vous permet désormais de définir des critères d'acteurs à l'aide d'expressions CELx flexibles, directement dans la configuration de votre application. Cela évite d'avoir à modifier les jetons de sujet et permet d'utiliser des critères tenant compte du contexte.

Avantages clés :
  • Contrôle centralisé via la configuration de l'application.
  • Prise en charge d'acteurs dynamiques tels que les agents d'IA et les services d'automatisation.
  • Opérations simplifiées sans prétraitement des jetons.
  • Compatibilité totale avec les processus existants may_act de traitement des demandes de remboursement.

Configuration

Pour les candidatures
  1. Accédez à la console d'administration, puis sélectionnez « Applications » > « Applications ». Cliquez sur « Ajouter une application », puis sélectionnez l'une des applications liées à « OpenID Connect » ou modifiez une application existante.
  2. Dans l'onglet « Connexion », accédez à la section « Échange de jetons ». Cliquez sur « Définir les critères » dans la vignette « Critères de l'acteur » pour saisir votre expression CELx.
  3. Enregistrez votre configuration.

Expressions définissant les critères des acteurs

Les expressions de critères d'acteur utilisent CELx et ont accès aux revendications des jetons « sujet » et « acteur » via le requestObject. Par exemple :
{
  "requestContext": {
    "grant_type": ["urn:ietf:params:oauth:grant-type:token-exchange"],
    "scope": ["email:read", "calendar:read", "documents:read"],
    "requested_token_type": ["urn:ietf:params:oauth:token-type:access_token"],
    "client_id": ["ai-assistant-app"],
    "subject_token": {
      "sub": "user-123",
      "email": "Jessica@example.com",
      "name": "Jessica Smith",
      "iss": "https://abc.verify.ibm.com/oauth2",
      "exp": 1737537000,
      "iat": 1737533400,
      "scope": ["openid", "profile", "email"]
    },
    "actor_token": {
      "agent_id": "ai-assistant-gpt-001",
      "name": "AI Assistant GPT",
      "type": "ai-agent",
      "version": "4.0",
      "purpose": "general-assistance",
      "certified": true,
      "provider": "openai",
      "iss": "spiffe://abc.com",
      "exp": 1737537000,
      "iat": 1737533400
    }
  }
}
Pour consulter la documentation complète sur la syntaxe CELx, reportez-vous au guide des fonctions d'attribut.
Exemples d'expressions
Valider les affirmations contenues dans les jetons « sujet » et « acteur » :
requestContext.actor_token.type == 'ai-agent' && 
    requestContext.actor_token.certified == true && 
    requestContext.subject_token.ai_delegation_enabled == true
Valider certaines portées :
requestContext.actor_token.type == 'ai-agent' && 
    requestContext.scope.all(s, s in ['email:read', 'calendar:read', 'documents:read'])

Comportement lors de l'exécution

Lorsqu'une demande d'échange de jeton est reçue, IBM Verify :
  • Vérifie la validité des jetons « sujet » et « acteur ».
  • Évalue l'expression des critères de l'acteur CELx.
  • Vérifie éventuellement l'allégation traditionnelle may_act (si elle n'a pas été ignorée).
  • Émet un jeton délégué assorti d'une revendication d'acte enrichie si toutes les vérifications sont réussies.
Ce processus est transparent pour les applications et n'entraîne qu'une latence minime.