Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

إدارة الهوية

يوفر نظام الهوية في PRX تحديد النطاق على مستوى مساحة العمل وعلى مستوى المستخدم لكل عمليات الوكيل. في عمليات النشر متعددة المستأجرين، يحدد سياق الهوية أي الذكريات والإعدادات والأدوات والموارد يمكن لجلسة معينة الوصول إليها. تُعد وحدة الهوية الأساس للتحكم بالوصول، وتدقيق السجلات، والتخصيص.

نظرة عامة

تعمل كل جلسة PRX ضمن سياق هوية يتضمن:

ComponentDescription
UserThe human or bot interacting with the agent
WorkspaceA logical boundary grouping users, configurations, and data
SessionA single conversation between a user and the agent
PrincipalThe effective identity for access control decisions
┌─────────────────────────────────────────┐
│              Workspace: "acme"          │
│                                         │
│  ┌──────────┐  ┌──────────┐            │
│  │ User: A  │  │ User: B  │  ...       │
│  │          │  │          │            │
│  │ Sessions │  │ Sessions │            │
│  │ Memories │  │ Memories │            │
│  │ Config   │  │ Config   │            │
│  └──────────┘  └──────────┘            │
│                                         │
│  Shared: workspace config, tools, keys │
└─────────────────────────────────────────┘

الإعدادات

إعداد مساحة العمل

toml
[identity]
# Enable multi-tenant identity scoping.
enabled = true

# Default workspace for sessions that do not specify one.
default_workspace = "default"

# Allow users to create new workspaces.
allow_workspace_creation = true

# Maximum workspaces per deployment.
max_workspaces = 100

ملفات تعريف المستخدم

تخزن ملفات تعريف المستخدم التفضيلات والبيانات الوصفية لكل مستخدم:

toml
[identity.profiles]
# Storage backend for user profiles: "memory" | "sqlite" | "postgres"
backend = "sqlite"
path = "~/.local/share/openprx/identities.db"

إعداد مساحة العمل

يمكن أن تمتلك كل مساحة عمل طبقة إعدادات خاصة بها تتجاوز الإعدادات الأساسية:

toml
# Workspace-specific overrides in config.toml
[workspaces.acme]
display_name = "ACME Corp"
default_provider = "openai"
default_model = "gpt-4o"

[workspaces.acme.memory]
backend = "postgres"

[workspaces.acme.security.tool_policy]
default = "supervised"

سياق الهوية

يتم تمرير البنية IdentityContext عبر خط معالجة الطلب بالكامل. وهي تحتوي على: user_id وdisplay_name وworkspace_id وsession_id وrole (Owner/Admin/Member/Guest) وchannel وmetadata مخصصة.

ينتشر سياق الهوية عبر كل طبقة: تستخرجه gateway من الطلبات الواردة، وتستخدمه حلقة الوكيل لتحديد نطاق الذاكرة والوصول إلى الأدوات، ويضع نظام الذاكرة مساحات أسماء للبيانات حسب مساحة العمل والمستخدم، وينسب تتبع التكلفة الاستهلاك، ويسجل سجل التدقيق الجهة الفاعلة.

تعدد المستأجرين

يدعم PRX عمليات نشر متعددة المستأجرين حيث تتشارك عدة مؤسسات مثيل PRX واحدًا. يتم فرض حدود المستأجرين على مستوى مساحة العمل:

عزل البيانات

ResourceIsolation Level
MemoriesPer-workspace + per-user
ConfigurationPer-workspace overlay on global defaults
Tool policiesPer-workspace overrides
SecretsPer-workspace vault
Cost budgetsPer-workspace limits
Audit logsPer-workspace filtering

الوصول عبر مساحات العمل

افتراضيًا، يمكن للمستخدمين الوصول فقط إلى الموارد داخل مساحة عملهم. يتطلب الوصول عبر مساحات العمل إعدادًا صريحًا:

toml
[identity.cross_workspace]
# Allow workspace admins to access other workspaces.
admin_cross_access = false

# Allow specific users to access multiple workspaces.
[[identity.cross_workspace.grants]]
user_id = "shared-bot"
workspaces = ["acme", "beta-corp"]
role = "member"

تحديد هوية المستخدم

يحدد PRX هوية المستخدم بشكل مختلف وفقًا لقناة الاتصال:

ChannelIdentity SourceUser ID Format
TelegramTelegram user IDtelegram:<user_id>
DiscordDiscord user IDdiscord:<user_id>
SlackSlack user IDslack:<workspace_id>:<user_id>
CLISystem usernamecli:<username>
API/GatewayBearer token / API keyapi:<key_hash>
WeChatWeChat OpenIDwechat:<open_id>
QQQQ numberqq:<qq_number>

التسجيل عند أول تواصل

عندما يتفاعل مستخدم جديد مع PRX لأول مرة، يتم إنشاء سجل هوية تلقائيًا: يستخرج مُحوّل القناة معرّف المستخدم، وينشئ ملف تعريف بإعدادات افتراضية، ويعيّن المستخدم إلى default_workspace بدور Member.

إدارة المستخدمين يدويًا

bash
# List all known users
prx identity list

# Show user details
prx identity info telegram:123456

# Assign a user to a workspace
prx identity assign telegram:123456 --workspace acme --role admin

# Remove a user from a workspace
prx identity remove telegram:123456 --workspace acme

# Set user metadata
prx identity set telegram:123456 --key language --value en

إدارة مساحات العمل

bash
# List all workspaces
prx workspace list

# Create a new workspace
prx workspace create acme --display-name "ACME Corp"

# Show workspace details
prx workspace info acme

# Set workspace configuration
prx workspace config acme --set default_provider=anthropic

# Delete a workspace (requires confirmation)
prx workspace delete acme --confirm

ملفات تعريف المستخدم

تخزن ملفات تعريف المستخدم تفضيلات تخصّص سلوك الوكيل:

FieldTypeDescription
user_idstringUnique identifier
display_namestringHuman-readable name
languagestringPreferred language (ISO 639-1)
timezonestringPreferred timezone (IANA format)
roleenumWorkspace role (owner, admin, member, guest)
preferencesmapKey-value preferences (model, verbosity, etc.)
created_atdatetimeFirst interaction timestamp
last_seen_atdatetimeMost recent interaction timestamp

الوصول إلى الملف الشخصي في System Prompts

يمكن أن يتضمن system prompt للوكيل معلومات ملف المستخدم عبر متغيرات القوالب (مثل {{identity.display_name}} و{{identity.language}})، والتي يتم حلّها من سياق الهوية قبل إرسال prompt إلى LLM.

التحكم بالوصول المعتمد على الأدوار

تحدد أدوار مساحة العمل الإجراءات التي يمكن للمستخدم تنفيذها:

PermissionOwnerAdminMemberGuest
Use agent (chat)YesYesYesYes
Store memoriesYesYesYesNo
Configure toolsYesYesNoNo
Manage usersYesYesNoNo
Manage workspaceYesNoNoNo
View audit logsYesYesNoNo

نقاط التكامل

عندما تكون identity.enabled = true، يتم تحديد نطاق كل عمليات الذاكرة بواسطة workspace:{workspace_id}:user:{user_id}:{key}، ما يضمن عزل البيانات. ويمكن تجاوز سياسات الأدوات لكل مساحة عمل، كما يُنسب استهلاك الرموز إلى سياق الهوية لإعداد تقارير تكلفة لكل مستخدم.

ملاحظات أمنية

  • Identity spoofing -- يثق نظام الهوية في أن مُحوّل القناة يعرّف المستخدمين بشكل صحيح. تأكد من إعداد مصادقة القناة بشكل صحيح (bot tokens وOAuth وغيرها).
  • Workspace isolation -- تُفرض حدود مساحة العمل في منطق التطبيق. لا يوفر التخزين الأساسي (SQLite, Postgres) عزلًا على مستوى قاعدة البيانات. قد يؤدي خطأ في منطق تحديد النطاق إلى تسرب بيانات.
  • Guest access -- يمتلك الضيوف صلاحيات دنيا افتراضيًا. راجع إعدادات دور الضيف عند تمكين وكلاء موجّهين للجمهور.
  • Profile data -- قد تحتوي ملفات تعريف المستخدم على معلومات شخصية. تعامل معها وفق سياسة الخصوصية واللوائح المعمول بها.
  • Cross-workspace grants -- امنح وصولًا عبر مساحات العمل بحذر. كل منحة توسّع نطاق التأثر عند اختراق حساب.

صفحات ذات صلة

Released under the Apache-2.0 License.