Logo Logo
GitHub Designed by Logto

ما هي نقطة نهاية معلومات المستخدم (Userinfo endpoint)؟

في OpenID Connect (OIDC) ، نقطة نهاية معلومات المستخدم (Userinfo endpoint) هي نقطة نهاية لـ OpenID Provider (OP) التي تقدم معلومات المستخدم لـ العملاء . وعادة ما تكون نقطة نهاية معلومات المستخدم نقطة نهاية تكميلية لـ رمز الهوية (ID token) وتسمح للعملاء بجلب معلومات إضافية عن المستخدم غير المشمولة في ID token.

تم تعريف نقطة نهاية معلومات المستخدم (Userinfo endpoint) في مواصفة OpenID Connect Core ويتم الوصول إليها عادة من قبل العملاء بعد الحصول على ID token.

كيف تعمل نقطة نهاية معلومات المستخدم (Userinfo endpoint)؟

عندما يقوم العميل بإرسال طلب إلى نقطة نهاية معلومات المستخدم (Userinfo endpoint)، يحتاج إلى تضمين access token الذي تم الحصول عليه من طلب الرمز (Token request) واستخدام طرق HTTP GET أو POST. تقوم نقطة نهاية معلومات المستخدم بالتحقق من access token وترجع معلومات المستخدم في الرد.

إليك مثالًا غير معياري لطلب معلومات المستخدم:

GET /userinfo HTTP/1.1
Host: openid-provider.example.com
Authorization: Bearer some-access-token

قد يختلف المسار الدقيق لنقطة نهاية معلومات المستخدم في موفري OpenID المختلفين. يمكنك الرجوع إلى اكتشاف OpenID Connect (OIDC) الخاصة بالمزود للعثور على URL نقطة نهاية معلومات المستخدم. إذا كان access token صالحًا، ترد نقطة نهاية معلومات المستخدم بمعلومات المستخدم:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "sub": "user123",
  "name": "Alice",
  "email": "[email protected]",
  "birthdate": "1990-01-01",
  "address": {
    "street": "1234 Elm St",
    "city": "Springfield",
    "country": "US"
  }
}

قد يحتوي الرد على سمات مستخدم مختلفة مثل name وemail وbirthdate وaddress؛ وعادة ما يحتوي على المزيد من المطالبات مقارنة بـ رمز الهوية (ID token) . تعتمد السمات الفعلية التي يتم إرجاعها على تهيئة OpenID Provider (OP) وموافقة المستخدم. يرجى الرجوع إلى وثائق موفر OpenID الخاص بك للحصول على السمات المحددة المتاحة.

التوقيع والتشفير

يمكن توقيع أو تشفير رد نقطة نهاية معلومات المستخدم لضمان سلامته وسريته. إذا تم تطبيق إحدى أو كلا هاتين الحمايتين، سيكون رد نقطة نهاية معلومات المستخدم في شكل رمز الويب جيسون (JSON Web Token, JWT) بدلاً من كائن JSON عادي.

انظر أيضا