演员标准

现代企业应用程序越来越依赖于代理场景,即由某个服务或代理代表用户执行操作。 无论是AI助手访问您的日历、微服务在获得用户授权后调用API,还是代理授权的情景,安全的授权都至关重要。 IBM® Verify 现在,通过可配置的参与者标准,您在授权这些委托关系时拥有了更大的灵活性。

传统代币交易面临的挑战

OAuth 2.0 令牌交换(RFC 8693)通过允许某个参与者代表某个主体 (通常是用户)获取令牌,从而实现授权。 传统上,这种授权是通过嵌入主体令牌中的声明 may_act 来控制的,该声明明确指定了哪些主体被允许代表其行事。 虽然这种方法行得通,但它也带来了一些实际挑战:
  • 灵活性有限 :在确保安全的同时,很难界定授权参与者的范围。 在签发主体令牌时,必须确切知道该角色的身份。
  • 复杂的令牌管理 :应用程序必须执行额外步骤,将声明 may_act 注入主体令牌中。

演员标准

IBM Verify 现在,您可以直接在应用程序配置中使用灵活的 CELx 表达式来定义参与者条件。 这样就无需修改主题标记,并支持基于上下文的筛选条件。

主要优点:
  • 通过应用程序配置实现集中控制。
  • 支持人工智能代理和自动化服务等动态参与者。
  • 简化操作,无需令牌预处理。
  • 与现 may_act 有的索赔处理流程完全向后兼容。

配置

适用于各类应用
  1. 转到管理控制台,然后选择 “应用程序” > “应用程序”。 点击 “添加应用程序 ”,选择任意一个与 OpenID Connect相关的应用程序,或编辑现有应用程序。
  2. “登录 ”选项卡中,转到 “令牌交换 ”部分。 点击 “参与者条件 ”磁贴中的“设置条件”,输入您的 CELx 表达式。
  3. 保存您的配置。

作用符条件表达式

requestObject行为者标准表达式使用 CELx,并可通过. 访问主体和行为者令牌的声明。 例如,
{
  "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
    }
  }
}
有关 CELx 语法的完整文档,请参阅《 属性函数指南》。
表达式示例
验证主题和行为者令牌中的声明:
requestContext.actor_token.type == 'ai-agent' && 
    requestContext.actor_token.certified == true && 
    requestContext.subject_token.ai_delegation_enabled == true
验证某些作用域:
requestContext.actor_token.type == 'ai-agent' && 
    requestContext.scope.all(s, s in ['email:read', 'calendar:read', 'documents:read'])

运行时行为

收到代币交换请求时, IBM Verify :
  • 同时验证主语和动作者标记。
  • 评估 CELx 参与者条件表达式。
  • 可选地检查传统 may_act 主张(如果未跳过)。
  • 如果所有检查均通过,则签发一个带有增强型行为声明的委托令牌。
该过程对应用程序而言是透明的,且仅会引入极小的延迟。