Logo Logo
GitHub Designed by Logto

ما هي المطالبة (Claim)؟

المطالبة (Claim) هي زوج اسم-قيمة ينقل معلومات محددة. على سبيل المثال، في كائن JSON:

{
  "sub": "foo",
  "email": "[email protected]"
}

في هذا المثال، “sub” هو مطالبة (Claim) تمثل معرف الموضوع بالقيمة “foo”، و”email” هو مطالبة (Claim) تمثل عنوان البريد الإلكتروني بالقيمة [email protected].

نستخدم الموضوع (subject) بدلاً من المستخدم (user) لأنه بدون تعريف واضح، يمكن أن يمثل الموضوع (sub) مستخدمًا أو جهازًا أو أي كيان.

استخدامات المطالبات (Claims)

تستخدم المطالبات (Claims) بشكل واسع في سياقات مختلفة مثل:

المطالبات القياسية

في JWT و OIDC، هناك مطالبات قياسية محددة بالمواصفات. بعض المطالبات القياسية الشائعة تشمل:

  • iss: مصدر التوكن. على سبيل المثال، إذا كانت خادم التفويض (Authorization server) التي أصدرت التوكن هي https://example.com، ففي معظم الحالات ستكون مطالبة iss نفسها (https://example.com).
  • sub: موضوع التوكن. يمثل الكيان المتعلق بالتوكن. على سبيل المثال، في توكن هوية، تمثل مطالبة sub عادة معرف المستخدم.
  • aud: جمهورية التوكن. تشير إلى المستلمين الذين يهدف التوكن لهم. على سبيل المثال، إذا كان التوكن مخصصًا للوصول إلى API في https://api.example.com، فستكون مطالبة aud نفسها (https://api.example.com).
  • exp: وقت انتهاء التوكن. يشير إلى متى ينبغي عدم قبول التوكن للمعالجة.
  • nbf: الوقت “ليس قبل” للتوكن. يشير إلى متى ينبغي بدء قبول التوكن للمعالجة.
  • iat: وقت إصدار التوكن. يشير إلى متى تم إصدار التوكن.
  • jti: معرف JWT للتوكن. يوفر معرفًا فريدًا للتوكن.

كما أن OIDC يعرف مطالبات قياسية إضافية لمعلومات المستخدم. انظر المطالبات (Claims) في مواصفات OIDC لمزيد من التفاصيل.

المطالبات المخصصة

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

يمكن أن تكون المطالبات المخصصة مميزة بـ معرفات الموارد المنتظمة (URIs) لتجنب التعارض مع المطالبات الأخرى. على سبيل المثال:

{
  "https://example.com/claims/role": "admin"
}

في هذا المثال، تتميز مطالبة role بـ https://example.com/claims/ لضمان التفرد. بدلاً من ذلك، يمكنك تحديد اسم مورد منتظم (URN) خاص بك للمطالبات المخصصة:

{
  "urn:example:claims:role": "admin"
}

في هذا المثال، تتميز مطالبة role بـ urn:example:claims:.

انظر أيضا