ما هو تفتيش الرمز المميز (Token introspection)؟
تفتيش الرمز المميز (Token introspection) هو امتداد لـ OAuth 2.0 يعرف في RFC 7662 الذي يتيح لـ العملاء (clients) استعلام خادم التفويض (Authorization server) للتحقق من صحة الرموز المميزة واسترداد البيانات الوصفية الخاصة بها. يكون هذا الامتداد مفيدًا عندما:
- يرغب العميل في التحقق من صحة الرمز المميز في الوقت الفعلي.
- يكون الرمز المميز غير شفاف (opaque) (غير محتوٍ ذاتيًا) ويتطلب من خادم التفويض التحقق منه.
كيف يعمل تفتيش الرمز المميز (Token introspection)؟
إليك مثال غير معياري لطلب تفتيش رمز مميز:
POST /introspect HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded
token=random-token-value
&token_type_hint=access_token
المعامل token_type_hint
اختياري ويجب تحديده لنوع الرمز المميز الذي يتم التفتيش عنه. إذا كان الرمز المميز صحيحًا، فإن خادم التفويض يستجيب بالبيانات الوصفية الخاصة بالرمز:
HTTP/1.1 200 OK
Content-Type: application/json
{
"active": true,
"scope": "read write",
"client_id": "client-id",
"username": "johndoe",
"token_type": "Bearer",
"exp": 1634020800,
"iat": 1634017200
}
من الجدير بالذكر أن ليس كل خوادم التفويض تدعم تفتيش الرمز المميز وليس كل الرموز قابلة للتفتيش. قد يحد خادم التفويض (Authorization server) من استخدام تفتيش الرمز المميز بناءً على عوامل مختلفة، على سبيل المثال، قد لا تدعم بعض خوادم التفويض التفتيش لـ JWTs .
المعاملات الرئيسية في طلب تفتيش الرمز المميز
إليك معاملتين رئيسيتين في طلب تفتيش الرمز المميز:
token
: الرمز المميز الذي سيتم تفتيشه.token_type_hint
: نوع الرمز المميز الذي يتم التفتيش عنه. يمكن أن يكونaccess_token
أوrefresh_token
.