OAuth2 & OpenID Connect Deep Dive · درس

طلب المطالبات والمطالبات المجمّعة

تعلّموا كيف يتيح OpenID Connect للعملاء طلب مطالبات محددة باستخدام معلمة claims، وكيف توفّر المطالبات الموزّعة والمجمّعة تأكيدات من مصادر خارجية.

الدرس 4 من 413 خطوة

طلب المطالبات والمطالبات المجمّعة درس مجاني في OAuth2 & OpenID Connect Deep Dive على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في OAuth2 & OpenID Connect Deep Dive، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة OAuth2 & OpenID Connect Deep Dive 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Requesting Specific Claims

Beyond scopes like profile or email, OIDC offers a finer-grained claims request parameter. It lets a client ask for individual claims and target where they appear: in the ID token or from UserInfo.

The claims Parameter Shape

The claims parameter is a JSON object with two top-level members: id_token and userinfo. Each maps claim names to a value describing how they are requested.

{
  "id_token": { "auth_time": { "essential": true } },
  "userinfo": { "email": null, "email_verified": null }
}

essential, value, values

Each requested claim can specify:

  • essential: true — the client really needs it.
  • value — request that the claim equals a specific value.
  • values — request one of several allowed values.
{ "acr": { "essential": true,
            "values": ["urn:mace:incommon:iap:silver"] } }

Sending It in the Request

The JSON is URL-encoded and sent as the claims query parameter on the authorization request.

GET /authorize?response_type=code
  &client_id=app123&scope=openid
  &claims=%7B%22id_token%22%3A%7B%22auth_time%22%3A%7B%22essential%22%3Atrue%7D%7D%7D

Why Not Just Scopes?

Scopes bundle many claims at once. The claims parameter is for when you need precision — a single specific claim, an essential requirement, or a constraint on its value. It complements scopes rather than replacing them.

Aggregated Claims

Sometimes claims come from a third party the OP trusts. Aggregated claims are bundled by the OP as a signed JWT from the external claims provider and returned inline, so the client gets verifiable assertions without extra calls.

Aggregated Claims Format

The OP references them via _claim_names (which claim came from which source) and _claim_sources (the JWT holding them).

{
  "_claim_names": { "address": "src1" },
  "_claim_sources": {
    "src1": { "JWT": "eyJhbGciOi..." }
  }
}

Distributed Claims

Distributed claims are not embedded; instead the OP gives an endpoint and access token so the client can fetch them directly from the external source when needed.

{
  "_claim_names": { "payment_info": "src2" },
  "_claim_sources": {
    "src2": {
      "endpoint": "https://bank.example.com/claims",
      "access_token": "ksj3n283dke"
    }
  }
}

Aggregated vs Distributed

The trade-off:

  • Aggregated — claims travel inline, fewer round-trips, larger token.
  • Distributed — claims fetched on demand, smaller token, extra request and live availability of the source.

Processing External Claims

For aggregated claims, verify the embedded JWT's signature against the claims provider's keys. For distributed claims, call the endpoint with the supplied access token and validate the returned JWT before trusting any values.

When to Use These

External claim mechanisms shine in federations: an identity provider asserts who you are, while a bank or government source asserts verified attributes. They keep sensitive data at its authoritative source.

Quick Check

Test your understanding of claim requests.

Recap

The claims parameter enables fine-grained, essential, or value-constrained claim requests targeting the ID token or UserInfo.

  • essential, value, and values refine each request.
  • Aggregated claims are embedded inline as signed JWTs.
  • Distributed claims are fetched from an external endpoint.
  • Always verify external claim signatures before trusting them.
البدء مجانًا

تعلم OAuth2 & OpenID Connect Deep Dive مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
12
الدروس
48

الأسئلة الشائعة

هل درس «طلب المطالبات والمطالبات المجمّعة» مجاني؟

نعم — نص درس «طلب المطالبات والمطالبات المجمّعة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة OAuth2 & OpenID Connect Deep Dive، انتقل إلى CoddyKit PRO. تتضمن دورة OAuth2 & OpenID Connect Deep Dive 4 دروس في المجموع.

ماذا ستتعلم في «طلب المطالبات والمطالبات المجمّعة»؟

تعلّموا كيف يتيح OpenID Connect للعملاء طلب مطالبات محددة باستخدام معلمة claims، وكيف توفّر المطالبات الموزّعة والمجمّعة تأكيدات من مصادر خارجية. تتمرن على OAuth2 & OpenID Connect Deep Dive مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ OAuth2 & OpenID Connect Deep Dive؟

لا تُشترط خبرة سابقة. OAuth2 & OpenID Connect Deep Dive على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «طلب المطالبات والمطالبات المجمّعة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس OAuth2 & OpenID Connect Deep Dive هذا؟

نعم. كل درس في OAuth2 & OpenID Connect Deep Dive يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التسجيل الديناميكي للعملاء
  2. نقطة نهاية اكتشاف OIDC
  3. إدارة الجلسات
  4. طلب المطالبات والمطالبات المجمّعة
← العودة إلى OAuth2 & OpenID Connect Deep Dive