OAUTH 2.0 هي اتفاقية ترخيص من الدرجة الصناعية. يتم توريث OAUTH 2.0 من OAUTH 1.0 ، الذي تم إنشاؤه في عام 2006. OAUTH 2.0 ملتزم بمساعدة المطورين على تبسيط التفويض وتوفير عمليات ترخيص محددة لتطبيقات الويب وتطبيقات سطح المكتب وتطبيقات الهاتف المحمول والتطبيقات المضمنة.
Oauth 2.0 هو بروتوكول معايير الصناعة للترخيص. تحل OAUTH 2.0 محل العمل الذي تم القيام به على بروتوكول OAUTH الأصلي الذي تم إنشاؤه في عام 2006. يركز OAUTH 2.0 على بساطة مطور العميل مع توفير تدفقات ترخيص محددة لتطبيقات الويب وتطبيقات سطح المكتب والهواتف المحمولة وأجهزة غرفة المعيشة.
أربعة أحرف من Oauth 2.0
لسهولة الفهم ، خذ تسجيل دخول WeChat شائع الاستخدام كمثال
مالك الموارد
مالك المورد ، والمعلومات الشخصية التي يتم تعيينها على WeChat من قبل كل مستخدم يتوافق مع WeChat تنتمي إلى كل مستخدم ولا ينتمي إلى Tencent.
خادم الموارد
تعتبر خوادم الموارد عمومًا واجهات برمجة تطبيقات REST لبعض عمليات بيانات المستخدم (الإضافة والحذف والتعديل والبحث) ، مثل واجهة WeChat للحصول على معلومات أساسية للمستخدم.
تطبيق العميل
يمكن لعملاء الطرف الثالث ، مقارنة بالتطبيقات التي طورتها مختلف الحسابات العامة لـ WeChat ، وصول تطبيقات الطرف الثالث إلى واجهة برمجة تطبيقات REST لخادم الموارد بعد أن يتم التصريح بها من قبل خادم المصادقة للحصول على معلومات أساسية مثل الصورة الرمزية والمستخدم ، والمنطقة ، وما إلى ذلك.
خادم التفويض
مصادقة الخادم للتحقق مما إذا كان عميل الطرف الثالث قانونيًا. إذا كان ذلك قانونيًا ، فقم بإصدار رمز مميز للعميل ، ويستخدم الطرف الثالث الرمز المميز لاستدعاء واجهة برمجة تطبيقات خادم الموارد.
أربع طرق تفويض (نوع المنحة)
anthorization_code
نوع رمز التفويض ، قابل للتطبيق على تطبيق خادم الويب. الوضع هو: يقوم العميل الأول بالاتصال/OAUTH/Oudlize/لإدخال واجهة ترخيص المستخدم ، ويقوم بإرجاع التعليمات البرمجية بعد ترخيص المستخدم ، ثم يحصل العميل على رغب الوصول وفقًا للرمز و AppSecret.
يقوم الضمني بتبسيط النوع ، وهناك خطوات أقل للحصول على رمز التفويض من نوع رمز التفويض. بعد تصريح تطبيق العميل ، سيقوم خادم المصادقة بوضع رمز الوصول مباشرة على عنوان URL للعميل. يقوم العميل بتحليل عنوان URL للحصول على الرمز المميز. هذه الطريقة ليست آمنة للغاية ، ويمكنك استخدام قنوات HTTPS الآمنة وتقصير وقت صحة رموز الوصول لتقليل المخاطر.
كلمة المرور
نوع كلمة المرور ، يحصل تطبيق العميل على رمز الوصول من خلال اسم المستخدم وكلمة المرور. إنه مناسب لخوادم الموارد وخوادم المصادقة والعملاء علاقة ثقة كاملة ، لأن المستخدم يريد إرسال اسم المستخدم وكلمة المرور للمستخدم مباشرة إلى تطبيق العميل. يحصل تطبيق العميل على الرمز المميز من خلال اسم المستخدم وكلمة المرور المرسلة من قبل المستخدم ، ثم يصل إلى موارد خادم الموارد. على سبيل المثال ، يمكن لـ AliPay تسجيل الدخول مباشرةً باستخدام اسم المستخدم وكلمة المرور Taobao لأنها تنتمي إلى نفس الشركة وتثقون تمامًا في بعضها البعض.
client_credentials
نوع العميل هو طريقة لا تتطلب مشاركة المستخدم ويستخدم للرسو بين الخدمات المختلفة. على سبيل المثال ، يحتاج التطبيق الذي تطوره بنفسك إلى الاتصال بخدمة مزود خدمة Codification SMS ، والاتصال بخدمة مزود خدمة الخريطة ، والاتصال بخدمة مزود خدمة دفع رسالة الهاتف المحمول. عندما تحتاج إلى الاتصال بالخدمة ، يمكنك استخدام معرف التطبيق مباشرة و AppSecret الذي قدمه مزود الخدمة للحصول على الرمز المميز. بعد الحصول على الرمز المميز ، يمكنك الاتصال مباشرة بالخدمة.
مفاهيم أخرى
ينجز
في بعض الأحيان يكون خادم الموارد وخادم المصادقة تطبيقان مختلفان. في بعض الأحيان يكون خادم الموارد وخادم المصادقة في نفس التطبيق. الفرق هو ما إذا كان خادم الموارد يحتاج إلى التحقق من صحة الرمز المميز. السابق يحتاج إلى التحقق ، في حين أن الأخير لا. يتم تنفيذ الأخير هنا.
تكوين أمان التطبيق
ConfigurationPublic Class SecurityConfiguration يمتد WebSecurityConfigureRadapter {Override Converseged Void Configure (httpsecurity http) يلقي استثناء {http.formlogin () .and (). csrf (). } Override Public Void Config (WebSecurity Web) يلقي الاستثناء {super.configure (web) ؛ } override proted void configure (antainticationManagerBuilder Auth) يلقي استثناء {auth.inmemoryauthentication (). withuser ("lyt"). كلمة المرور ("lyt"). السلطات ("rob_user"). } @Override Public AuthenticationManager AuthenticationManagerBean () يلقي الاستثناء {return Super.AuthenticationManagerBean () ؛ }}تكوين خادم المصادقة
enableeaThorizationServer @configurationpublic class supplizationerserverConfiguration يمتد إلى تأليف eventireverConfigurerAdapter {Override public void config (clientDetailsServicEconfigurer compann . } override public void configure (uildizationServerEndPointSconfigurer endpoints) يلقي الاستثناء {endpoints.authenticationManager (AuthenticationManager) ؛ } autowired QAlifier ("antanketicationManagerBean") المصادقة الخاصة بـ OuthenticationManager ؛}تكوين خادم الموارد
enableglobalbalmethodsecurity (prepoStEnabled = true)@enableresourceServer@configurationpublic class class ordervisterconfiguration يمتد ResourceserverConfigureRadapter .antmatchers (httpmethod.get ، "/Read/*").Access("#oauth2.hasscope('read '). }}إعدادات مرشح خادم الموارد
تحتاج إلى تعيين ترتيب مرشح إلى 3 في application.yml. يرجى الرجوع إلى الرابط لأسباب محددة.
منع تعارضات ملفات تعريف الارتباط
من أجل تجنب الأخطاء بين ملفات تعريف الارتباط لخادم المصادقة وملفات تعريف الارتباط بين العميل وملفات تعريف الارتباط ، من الأفضل تعديل اسم ملف تعريف الارتباط أو تعيين Context Path.
امتحان
يوفر Postman طريقة المصادقة OAuth 2.0. يمكنك الحصول على الرمز المميز وإضافة المصادقة إلى طلب HTTP ، ثم طلب API REST لخادم الموارد.
معلومات العميل
إذن
الرمز المميز الذي تم الحصول عليه
الوصول إلى واجهة برمجة تطبيقات خادم الموارد
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.