Logo Logo
GitHub Designed by Logto

ما هو اكتشاف OpenID Connect (OIDC)؟

اكتشاف OpenID Connect (OIDC)، المحدد في OpenID Connect Discovery 1.0 ، هو آلية تسمح لـ العملاء باكتشاف نقاط النهاية وتكوين موفر OpenID تلقائيًا. هذه طريقة حديثة لتبسيط الاتصال بين العملاء و موفري OpenID .

اكتشاف OIDC يحتوي على مكونين رئيسيين:

  • اكتشاف موفر OpenID issuer: يمكن للعميل اكتشاف موقع (URL) issuer عبر WebFinger أو مستند خارجي.
  • بيانات موفر OpenID الوصفية: يمكن للعميل استرداد ومعالجة المستند الوصفي لفهم قدرات ونقاط نهاية موفر OpenID.

كيف يعمل اكتشاف OIDC؟

اكتشاف موفر OpenID issuer

موفر OpenID issuer هو معرف فريد (عادة ما يكون نفسه URL) يمكن للعملاء استخدامه لاكتشاف تكوين موفر OpenID. ومع ذلك، يجب على العملاء معرفة موقع issuer قبل أن يتمكنوا من استرداد المستند الوصفي.

إذا كان موقع issuer معروفًا بالفعل، يمكن للعميل تخطي الخطوة التالية. خلاف ذلك، يمكن للعميل استخدام WebFinger لاكتشاف موقع issuer. المعلومات اللازمة لاكتشاف OIDC issuer هي:

  • host: مكان استضافة خدمة WebFinger.
  • resource: عنوان البريد الإلكتروني أو URL لموفر OpenID.
  • rel: نوع العلاقة، والذي يجب أن يكون مضبوطًا على http://openid.net/specs/connect/1.0/issuer.

على سبيل المثال، يحاول مستخدم بعنوان البريد الإلكتروني [email protected] اكتشاف موقع issuer على example.com. ستبدو طلبية WebFinger كما يلي:

GET /.well-known/webfinger?resource=acct%3Afoo%40bar.com&
  rel=http%3A%2F%2Fopenid.net%2Fspecs%2Fconnect%2F1.0%2Fissuer HTTP/1.1
Host: example.com

المعلمة resource عند فك ترميزها تكون acct:[email protected]، ومعلمة rel تكون http://openid.net/specs/connect/1.0/issuer.

بيانات موفر OpenID الوصفية

بمجرد أن يعرف العميل موقع issuer، يمكنه استرداد المستند الوصفي من نقطة النهاية المعروفة. المسار إلى المستند الوصفي هو /.well-known/openid-configuration نسبياً إلى URL الخاص بـ issuer.

على سبيل المثال، إذا كان URL الخاص بالـ issuer هو https://oidc.example.com، يمكن للعميل استرداد المستند الوصفي من https://oidc.example.com/.well-known/openid-configuration. هنا مثال غير معياري للاستجابة الوصفية:

{
  "issuer": "https://oidc.example.com",
  "authorization_endpoint": "https://oidc.example.com/authorize",
  "token_endpoint": "https://oidc.example.com/token",
  //...
}

يحتوي المستند الوصفي على الكثير من المعلومات المفيدة حول موفر OpenID. دعونا نبرز بضع حقول رئيسية:

للحصول على قائمة شاملة بالحقول الوصفية، يرجى الرجوع إلى مواصفة OpenID Connect Discovery 1.0 .

انظر أيضا