演员标准
现代企业应用程序越来越依赖于代理场景,即由某个服务或代理代表用户执行操作。 无论是AI助手访问您的日历、微服务在获得用户授权后调用API,还是代理授权的情景,安全的授权都至关重要。 IBM® Verify 现在,通过可配置的参与者标准,您在授权这些委托关系时拥有了更大的灵活性。
传统代币交易面临的挑战
OAuth 2.0 令牌交换(RFC 8693)通过允许某个参与者代表某个主体 (通常是用户)获取令牌,从而实现授权。 传统上,这种授权是通过嵌入主体令牌中的声明
may_act 来控制的,该声明明确指定了哪些主体被允许代表其行事。 虽然这种方法行得通,但它也带来了一些实际挑战:- 灵活性有限 :在确保安全的同时,很难界定授权参与者的范围。 在签发主体令牌时,必须确切知道该角色的身份。
- 复杂的令牌管理 :应用程序必须执行额外步骤,将声明
may_act注入主体令牌中。
演员标准
IBM Verify 现在,您可以直接在应用程序配置中使用灵活的 CELx 表达式来定义参与者条件。 这样就无需修改主题标记,并支持基于上下文的筛选条件。
主要优点:
- 通过应用程序配置实现集中控制。
- 支持人工智能代理和自动化服务等动态参与者。
- 简化操作,无需令牌预处理。
- 与现
may_act有的索赔处理流程完全向后兼容。
配置
- 适用于各类应用
- 转到管理控制台,然后选择 。 点击 “添加应用程序 ”,选择任意一个与 OpenID Connect相关的应用程序,或编辑现有应用程序。
- 在 “登录 ”选项卡中,转到 “令牌交换 ”部分。 点击 “参与者条件 ”磁贴中的“设置条件”,输入您的 CELx 表达式。
- 保存您的配置。
作用符条件表达式
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 == truerequestContext.actor_token.type == 'ai-agent' && requestContext.scope.all(s, s in ['email:read', 'calendar:read', 'documents:read'])
运行时行为
收到代币交换请求时, IBM Verify :
- 同时验证主语和动作者标记。
- 评估 CELx 参与者条件表达式。
- 可选地检查传统
may_act主张(如果未跳过)。 - 如果所有检查均通过,则签发一个带有增强型行为声明的委托令牌。