- عنوان کتاب: OAuth 2 in Action
- نویسنده: Justin Richer
- حوزه: احراز هویت
- سال انتشار: 2017
- تعداد صفحه: 362
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 14.1 مگابایت
نام من جاستین ریچر است، و من یک فرد امنیتی آموزش دیده کلاسیک نیستم، حتی اگر برای کار روزانه خود به عنوان مشاور وانمود کنم که یکی از آنها هستم. پیشینه من در زمینه فناوری های همکاری است و اینکه چگونه می توانیم افراد را وادار کنیم تا با استفاده از رایانه کارها را با هم انجام دهند. با این حال، من برای مدت طولانی با OAuth کار میکردم و چندین سرور و کلاینت اولیه OAuth 1.0 را برای اتصال سیستمهای همکاری که در آن زمان با آنها تحقیق میکردم، پیادهسازی کردم. در همان زمان بود که متوجه شدم اگر قرار بود معماری اپلیکیشن شما در دنیای واقعی زنده بماند، باید یک سیستم امنیتی خوب، قابل اجرا و قابل استفاده داشته باشید. تقریباً در این زمان، در جلسات اولیه کارگاه هویت اینترنتی شرکت کردم، جایی که مردم در مورد نسل بعدی OAuth صحبت می کردند، چیزی که بر اساس درس های آموخته شده از استفاده از OAuth 1.0 در دنیای واقعی است. هنگامی که توسعه OAuth 2.0 در گروه ضربت مهندسی اینترنت (IETF) شروع شد، من به گروه ملحق شدم و ابتدا وارد بحث شدم. چندین سال بعد، ما به یک مشخصات رسیدیم. کامل نبود، اما بسیار خوب کار کرد، مردم آن را دریافت کردند و آتش گرفت. من با گروه کاری OAuth درگیر ماندم و حتی به عنوان ویراستار برای ثبت پویا (RFC 7591 و 7592) و Token Introspection (RFC 7662) به OAuth خدمت کردم. امروز، من ویرایشگر یا نویسنده بخش هایی از مجموعه OAuth Proof of Possession (PoP) و همچنین ویرایشگر فنی چندین نمایه و برنامه های افزودنی OAuth و پروتکل های مرتبط با آن هستم. من روی مشخصات هسته OpenID Connect کار کردم، و تیمم و من یک سرور OAuth و OpenID Connect و مجموعه کلاینت، MITREid Connect با استقبال خوبی را پیاده سازی کردیم. من ناگهان متوجه شدم که در مورد OAuth 2.0 برای بسیاری از مخاطبان مختلف صحبت می کنم و آن را در سیستم های مختلف پیاده سازی می کنم. من کلاسها تدریس میکردم، سخنرانی میکردم و چند مقاله در مورد این موضوع نوشتم. بنابراین هنگامی که آنتونیو سانسو، محقق امنیتی مورد احترام خود، به من نزدیک شد تا این کتاب را با هم بنویسم، منطقی بود که وارد آن شوم. ما به اطراف نگاه کردیم که چه کتاب هایی در OAuth 2.0 موجود است و تحت تأثیر قرار نگرفتیم. بیشتر مطالبی که ما پیدا کردیم مختص یک سرویس بود: به عنوان مثال، چگونه یک مشتری OAuth بنویسیم تا با فیس بوک یا گوگل صحبت کند. یا نحوه مجوز برنامه بومی خود به API GitHub. و اگر این تنها چیزی است که به آن اهمیت می دهید، مطالب زیادی در آنجا وجود دارد. اما چیزی که ما ندیدیم چیزی بود که خواننده را در کل سیستم OAuth می برد و توضیح می داد که چرا اینگونه طراحی شده است و به معایب و محدودیت ها و همچنین نقاط قوت آن اشاره می کند. ما به این نتیجه رسیدیم که نیاز به رویکرد جامع تری وجود دارد و تصمیم گرفتیم آن را به بهترین شکل ممکن انجام دهیم. در نتیجه، این کتاب با هیچ ارائهدهنده OAuth در دنیای واقعی صحبت نمیکند و در مورد یک API خاص یا دامنه عمودی به جزئیات نمیپردازد. در عوض، این کتاب بر روی انجام OAuth به خاطر خود تمرکز دارد، به طوری که می توانید ببینید که چگونه همه چرخ دنده ها با چرخاندن میل لنگ به هم متصل می شوند. ما یک چارچوب کد ایجاد کردیم که امیدوار بودیم به خوانندگان این امکان را بدهد تا بر جنبههای اصلی OAuth تمرکز کنند بدون اینکه بیش از حد در جزئیات پلت فرم پیادهسازی غرق شوند. از این گذشته، ما کتابی نمیخواستیم که «نحوه پیادهسازی OAuth 2.0 در Platform Du Jour» باشد، بلکه «چگونه مهرهها و پیچهای OAuth 2.0 کار میکنند تا بتوانید از هر پلتفرمی که میخواهید استفاده کنید» میخواستیم. بنابراین ما با یک چارچوب نسبتا ساده Node.js، ساخته شده بر روی Express.js، و به طور آزادانه از کد کتابخانه استفاده کردیم تا تا آنجا که ممکن بود از موارد عجیب و غریب خاص پلت فرم حذف کنیم. با این حال، این جاوا اسکریپت است، بنابراین برخی از این موارد عجیب و غریب هر از گاهی مانند هر پلتفرمی رخ می دهد. اما امیدواریم بتوانید روش ها و مضامین مورد استفاده در اینجا را در زبان، پلتفرم و معماری انتخابی خود اعمال کنید.
My name is Justin Richer, and I’m not a classically trained security nerd, even though I pretend to be one for my day job as a consultant. My background is in collaboration technologies and how we can get people doing things together using computers. Even so, I’ve been working with OAuth for a long time, having implemented several early OAuth 1.0 servers and clients to connect the collaboration systems that I was conducting research with at the time. It was around then that I came to appreciate that you needed to have a good, implementable, usable security system if your application architecture was going to survive in the real world. Around this time, I attended the early Internet Identity Workshop meetings, where people were talking about a next generation of OAuth, something that would build on the lessons learned from using OAuth 1.0 out in the real world. When the development of OAuth 2.0 started up in the Internet Engineering Task Force (IETF), I joined the group and dove face first into the debates. Several years later, we came up with a specification. It wasn’t perfect, but it worked pretty well, people got it, and it caught fire. I stayed involved with the OAuth Working Group, and even served as editor for the Dynamic Registration (RFC 7591 and 7592) and Token Introspection (RFC 7662) extensions to OAuth. Today, I’m the editor or author for parts of the OAuth Proof of Possession (PoP) suite, as well as the technical editor for several profiles and extensions of OAuth and its related protocols. I worked on the OpenID Connect core specification, and my team and I implemented a fairly well-received OAuth and OpenID Connect server and client suite, MITREid Connect. I suddenly found myself talking about OAuth 2.0 to many different audiences and implementing it on a wide variety of systems. I’d taught classes, given lectures, and written a handful of articles about the subject. So when Antonio Sanso, a well-respected security researcher in his own right, approached me to write this book together, it made sense for me to jump in. We looked around at what books were available on OAuth 2.0, and were unimpressed. Most of the material we found was specific to a service: How to write an OAuth client to talk to Facebook or Google, for instance. Or How to authorize your native application to GitHub’s API. And if that’s all you care about, there’s plenty of material out there. But what we didn’t see was something that would take the reader through the entire OAuth system, explaining why it is designed the way that it is, pointing out its flaws and limitations as well as its strengths. We decided that there was a need for a more comprehensive approach, and we decided to make it the best that we could. Consequently, this book doesn’t talk to any specific real-world OAuth provider, nor does it get into detail on a particular API or vertical domain. Instead, this book focuses on doing OAuth for its own sake, so that you can see how all the gears mesh together when you turn the cranks. We built out a code framework that, we hoped, would allow readers to focus on the core aspects of OAuth without getting overly caught up in the implementation platform details. After all, we didn’t want a book that was “How to implement OAuth 2.0 on Platform Du Jour,” but rather, “How the nuts and bolts of OAuth 2.0 work so you can use whatever platform you want.” So we went with a relatively simple Node.js framework, built on Express.js, and liberally used library code to abstract away the platform-specific weirdness as much as possible. Still, it’s JavaScript, so some of that weirdness crept in from time to time, as it would on any platform. But it’s our hope that you will be able to apply the methods and themes used here to your chosen language, platform, and architecture.
این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:
Download: OAuth 2 in Action
نظرات کاربران