俳優の選考基準
現代のエンタープライズアプリケーションでは、あるサービスやエージェントがユーザーに代わって動作する「委任」のシナリオへの依存度が高まっています。 AIアシスタントがカレンダーにアクセスする場合でも、ユーザーの権限に基づいてAPIを呼び出すマイクロサービスの場合でも、あるいは委任状に基づくシナリオの場合でも、安全な権限委譲は極めて重要です。 IBM® Verify 設定可能なアクター基準を通じて、これらの委任関係の承認方法において、より柔軟な対応が可能になりました。
従来のトークン交換における課題
OAuth 2.0 トークン交換(RFC 8693)は、アクター がサブジェクト (通常はユーザー)に代わってトークンを取得できるようにすることで、委任を可能にします。 従来、この権限は、対象のトークンに埋め込まれたクレーム
may_act を通じて管理されており、このクレームによって、どのアクターが対象に代わって行動することが許可されているかが正確に指定されます。 このアプローチは有効ですが、実務上、いくつかの課題があります:- 柔軟性の欠如 :セキュリティを確保しつつ、許可されるアクターの範囲を定義することは困難である。 サブジェクト・トークンを発行する際には、アクターの正確な身元を把握している必要があります。
- 複雑なトークン管理 :アプリケーションは、クレームを
may_actサブジェクト・トークンに組み込むために、追加の手順を実行する必要があります。
俳優の選考基準
IBM Verify これで、アプリケーションの設定内で直接、柔軟なCELx式を使用してアクターの条件を定義できるようになりました。 これにより、主語トークンを変更する必要がなくなり、文脈に応じた条件設定が可能になります。
主なメリットは次のとおりです。
- アプリケーションの設定による一元的な制御。
- AIエージェントや自動化サービスといった動的なアクターへの対応。
- トークンの前処理を必要としない、簡素化された操作。
- 既存の
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の構文に関する完全なドキュメントについては、『 属性関数ガイド』を参照してください。- 式の例
- subject および actor トークン内の主張を検証する:
特定のスコープを検証する: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主張を確認します(スキップされていない場合)。 - すべてのチェックに合格した場合、拡張されたactクレームを含む委任トークンを発行します。