WHAT IS DIFFERENCE BETWEEN SERVICE PROVIDER AND IDENTITY PROVIDER
Mar 27, 2022Copy Link
كنا إتكلمنا المرة اللي فاتت عن ال OAUTHو كنا قولنا إنها بت prove identity بين ال consumer وال service provider ... ودلوقتي جه الوقت نعرف يعني إيه Service Provider وإيه الفرق بينها وبين ال Identity Provider.
ال Identity Provider : دي حاجة بتعمل authenticate لل user و بت provide حاجة إسمها authenticate token ودا عشان يتأكد إنك فعلاً سجلت بياناتك بشكل صحيح وبيبعته لل Service Provider وبعدين ال Service Provider بيقولك هل البيانات اللي إنت سجلت بيها صح ولا غلط. وال Identity Provider بتعمل حاجة من إتنين
• Direct User Authenticate : ودي لما بتعمل validate لل username و ال password.
• Indirect User Authenticate : ودي بيتأكد من صحة بيانات ال user اللي قدمها مُزود خدمة تاني منفصل.
ال Service Provider : ودا مش بيعمل authenticate لل user زي مابيعمل ال Identity Provider بس هو بياخد قرارات بناءاً علي تعليمات جياله من ال Identity Provider.
ودلوقتي زي ماعرفنا ال OAUTHهنشوف دلوقتي حاجة إسمها SAML ... إيه هو ال SAML ؟
دا إختصار ل Security Assertion Markup Language ودي حاجة بتستخدمها الشركات بدل ما تعمل أكتر من عملية authentication لل (SSO (Single Sing On وال SAML بستخدم ال XML عشان تنقل البيانات, إنما ال OAuth بتستخدم ال JSON. بمعني تاني إن مثلاً لو جيت تسجل دخول في أي موقع وكتبت الميل والباسورد بتوعك ودول بنسميهم Credentials اللي بيحصل إن ال Service Provider بيعبت البيانات اللي كتبها لل Identity Provider
وال Identity Providerبيشيك لو البيانات صح أو خطأ وبيبعت النتيجة دي لل Service Provider وبيبعتها علي شكل SAML.
كنا ذكرنا من شوية حاجة اسمها SSO ... يعني إيه SSO ؟
دي إختصار ل Single Sign On دي حاجة بتخليك إنك تسجل دخول في أكتر من موقع عن طريق One Set Of Credentials والحكاية دي بنسميها Jargon ... يعني مثلاً بنلاقي في أغلب المواقع زرار Login With Facebook والزرار يخليك تسجل دخول في أكتر من موقع ب username واحد و password واحدة والعملية دي هي اللي بنسميها SSO.
طيب خلونا نتخيل إزاي ال authentication بتشتغل من غير ال SSO ؟
كان اللي هيحصل إن كل website هيحتفظ بال credentials لل users في الداتا بيز بتاعه ال website دا ودا هو اللي بيحصل لما تيجي تسجل دخول لل website
1-) الموقع بيشيك هل إنت authenticated للموقع دا ولا لأ, لو إنت authenticated بيديك access لل website.
2-) لو إنت مش authenticated بيخليك تسجل دخول في الموقع الأول وطبعاً بيشيك علي ال credentials.
3-) وبعد عملية تسجيل الدخول الموقع بيمرر ال authentication verification خلال عملية التنقل من ال website وعشان يتحقق انك authenticated في كل مرة تعوز انك تتنقل لصفح جديدة.
الشغل بال SSO بيعتمد علي العلاقة بين ال websites وبعضها الشغل بيكون كالآتي
1-) ال website بيشيك هل إنت authenticated بطريقة ال SSO ولا لأ لو إنت authenticated بيديك ال access لل website دا.
2-) لو لأ بتخليك تسجل الأول لل SSO.
3-) بتسجل ال username وال password اللي هتستخدمهم بعد كدا.
4-) ال SSO بتطلب ال authentication من ال Identity Provider وبتعمله تأكيد خلاص.
5-) ال SSO بتعمل authenticate لل website وبعدين بترجع لل website اللي كنت عايز تستخدم فيه ال SSO.
6-) بعد عملية تسجيل الدخول ال website بيمرر ال authentication verification لل website اللي كنت عايز تستخدم فيه ال SSO وعشان تقول إنك authenticated كل مرة تروح فيها ل page جديدة.