کتاب Cloud Native Data Security with Oauth: A Scalable Zero Trust Architecture (امنیت داده ابری بومی با OAuth: یک معماری مقیاسپذیر با رویکرد اعتماد صفر) یک راهنمای جامع برای ایمنسازی APIها و کلاینتها در محیطهای ابری بومی است. این کتاب به توسعهدهندگان، معماران و مهندسان قابلیت اطمینان سایت کمک میکند تا با استفاده از چارچوب OAuth 2.0، یک معماری امنیتی با رویکرد اعتماد صفر ایجاد کنند.
در ادامه مقدمهای از کتاب Cloud Native Data Security with Oauth را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Cloud Native Data Security with Oauth:
امنیت داده ابری بومی با OAuth
هنگامی که راهکارهای دیجیتال میسازید، کاربران شما برنامههایی را اجرا میکنند که از طریق اینترنت به دادهها دسترسی پیدا میکنند. این برنامهها میتوانند روی مرورگرها، دستگاههای تلفن همراه، سرورها یا هر پلتفرم دیگری اجرا شوند. با این حال، آنها یک چیز مشترک دارند: آنها کلاینتهای API هستند و این بدان معناست که برای دسترسی به دادهها، APIها را فراخوانی میکنند.
APIها باید دسترسی امن به دادهها را فراهم کنند، زیرا دادههایی که ارائه میدهند ممکن است شامل مالکیت معنوی، دادههای شخصی متعلق به شهروندان یا کاربران، یا اطلاعات متعلق به شرکای تجاری باشد. برای محافظت از دادهها و دسترسی به آنها، باید هم APIها و هم برنامهای که دادهها را دریافت میکند، ایمن کنید. چنین الزامات امنیتی میتواند ناشی از ابتکارات انطباق و نظارتی باشد. یک مثال، مقررات عمومی حفاظت از داده اتحادیه اروپا (GDPR) است که بر حریم خصوصی و رضایت کاربر حاکم است.
مدیریت امنیت و حریم خصوصی دادهها در APIها و کلاینتهای API یک مشکل دشوار است که نیاز به یک راه حل معماری دارد. APIهای شما باید هویت کاربران را به درستی پردازش کنند تا هر کاربر فقط به منابع API صحیح دسترسی پیدا کند.
برای دستیابی به این هدف، باید مجوز تجاری را در APIها اعمال کنید. البته قوانین دقیق مجوز به موارد استفاده تجاری شما بستگی دارد. در حالت ایدهآل، شما اطمینان حاصل میکنید که هر درخواست API از یک کلاینت شامل یک اعتبار پیام API غیرقابل جعل و با حداقل امتیاز است. این اعتبار، مجوزهای تجاری را منتقل میکند. شما ابتدا چنین اعتباری را در API تأیید میکنید، سپس قوانین خاص خود را اعمال میکنید. وقتی از هر درخواست API به این روش محافظت میکنید، هم برای درخواستهای خارجی و هم داخلی، یک معماری API با رویکرد “اعتماد صفر” به دست میآورید.
هنگام پیادهسازی امنیت API، فرض میکنیم که کیفیتهای معماری خاصی را میخواهید، از جمله قابلیت اطمینان، مقیاسپذیری و تجربه توسعهدهنده سازنده. معماری شما باید علاوه بر امنیت، شما را قادر سازد تا تمام این الزامات غیرعملکردی را برآورده کنید.
ما به شما نشان میدهیم که چگونه با استفاده از انتخابهای طراحی قوی به چنین معماری دست یابید. ما یک رویکرد جداسازی دغدغهها را برای برونسپاری حوزههای دشوار از کد برنامه شما نشان میدهیم. به عنوان مثال، میتوانید اجزای امنیتی را روی یک پلتفرم ابری بومی با ویژگیهای خوشهبندی و الاستیسیته مدرن برای برآورده کردن الزامات دسترسی بالا میزبانی کنید. به طور مشابه، میتوانید رمزنگاری و سایر ملزومات امنیتی را با استفاده از نقاط پایانی و کتابخانههای متخصص مدیریت کنید. انتخابهای شما باید یک تنظیمات آیندهنگر را فعال کرده و به تعداد زیادی از برنامهها، APIها و تیمها مقیاسپذیر باشد.
چرا کتاب Cloud Native Data Security with Oauth را نوشتیم؟
ما (نویسندگان) همگی در Curity، شرکتی متخصص در مدیریت هویت و دسترسی برای APIها، کار میکنیم. در کارهای روزمره خود، OAuth و فناوریهای مرتبط را به مخاطبان گسترده آموزش میدهیم. ما برخی از مطالب آنلاین خود را بر اساس Curity Identity Server قرار میدهیم، اما بیشتر محتوای ما خاص محصول نیست و یک معماری مبتنی بر استاندارد را توضیح میدهد.
کار ما شامل ارائهها، فیلمها، مقالات آنلاین و نمونههای کد و همچنین تحقیقات و اکتشافات در فضای احراز هویت امن و دسترسی به API است. اگرچه ابری بومی، آخرین وضعیت در هنگام استقرار APIها است، اما متوجه شدیم که منابع مربوط به امنیت ابری بومی عمدتاً بر زیرساخت تمرکز دارند. ما اذعان داریم که امنیت زیرساخت، مانند رمزگذاری، برای ایمنسازی دادهها مهم است، و فرآیندها، سیاستها و حاکمیت نیز مهم هستند. مجوز، قطعهای از پازل است که ما در آن متخصص هستیم.
ما کتاب Cloud Native Data Security with Oauth را نوشتیم زیرا معتقدیم که OAuth مزایای معماری عمدهای برای برنامهها و APIها دارد، اما به طور گستردهای سوءتفاهم شده است. این امر سازمانها را از انتخاب درست و تحقق کامل مزایا باز میدارد. به طور خاص، ما معتقدیم که توکنهای دسترسی اغلب به طور زیربهینه استفاده میشوند.
هنگامی که توکنهای دسترسی را به درستی طراحی میکنید، آنها به شما امکان میدهند مرزهای امنیتی را تعیین کنید و مجوز دسترسی به منابع تجاری امن خود را به گونهای کنترل کنید که برای انواع سازمانها، از کوچک تا بسیار بزرگ، مفید باشد. با ترکیب یک صادرکننده توکن متمرکز با تکنیکهای مجوز هوشمند، میتوانید دسترسی به منابع را در هر مقیاسی نظارت، ممیزی و مدیریت کنید.
ما الزامات امنیتی اصلی برای APIها و کلاینتهای API را در رابطه با مجوز توضیح میدهیم و نشان میدهیم که چگونه OAuth به شما در برآورده کردن آنها کمک میکند. بخش دوم هسته اصلی کتاب Cloud Native Data Security with Oauth است و توصیه میکنیم هنگام خواندن آن دقت ویژهای داشته باشید.
ما فکر میکنیم که اگر بتوانیم به شما کمک کنیم تا بفهمید که چگونه اجزای هویت و تجارت با هم کار میکنند، میتوانید انتخابهای درستی داشته باشید و از OAuth برای یک راه حل امن و مقیاسپذیر بهره کامل ببرید. ما یک سفر متوالی را از دیدگاه توسعهدهندگان و سازمانهای سازنده راهکارهای دیجیتال توضیح میدهیم. ما محتوای نظری را همراه با محتوای عملی برای پشتیبانی از نظریه ارائه میدهیم.
کتاب Cloud Native Data Security with Oauth برای چه کسانی است؟
این محتوا برای هر توسعهدهنده، معمار یا مهندس قابلیت اطمینان سایت که به امنیت API علاقهمند است، هدف قرار گرفته است. شما ممکن است با APIهایی کار کنید که از قبل دارای برخی امنیتهای اساسی هستند، اما میخواهید یاد بگیرید که چگونه به معماری “اعتماد صفر” بهروزرسانی کنید. ترجیحاً، شما دانش سطح متوسطی از APIها و امنیت API دارید.
ما از Docker و Kubernetes برای ارائه مثالهایی استفاده میکنیم که طرحهای امنیتی ما را پیادهسازی میکنند. بنابراین، اگر با کانتینرها آشنایی داشته باشید، تجربه عملیتری از کتاب Cloud Native Data Security with Oauth خواهید داشت. با این حال، میتوانید مفاهیمی را که ما توضیح میدهیم، در هر پلتفرم ابری بومی اعمال کنید.
کتاب Cloud Native Data Security with Oauth در برخی جاها مفصل است، بنابراین باید آماده باشید تا مقدار قابل توجهی از مطالب مربوط به موضوعات هویتی را جذب کنید. مهمتر از همه، شما باید مایل به اتخاذ رویکرد جداسازی دغدغهها در مهندسی نرمافزار باشید.
آنچه در کتاب Cloud Native Data Security with Oauth خواهید آموخت
شما یاد خواهید گرفت که چگونه APIها و کلاینتها را با استفاده از چارچوب مجوز OAuth 2.0 ایمن کنید. ما طرحها، الگوها و بهترین شیوههایی را ارائه خواهیم داد که به شما در اجرای مجوزهای تجاری در APIها کمک میکنند. شما یاد خواهید گرفت که چگونه وظایف زیر را انجام دهید:
- توکنهای دسترسی با حداقل امتیاز را طراحی کنید.
- یک سرور مجوز را اداره کنید.
- توکنهای دسترسی را برای کلاینتهای API صادر کنید، سپس آنها را به APIها ارسال کنید.
- توکنهای دسترسی را در APIها اعتبارسنجی کنید، سپس دسترسی به دادههای تجاری را مجوز دهید.
- یک جریان کد را در کلاینتها پیادهسازی کنید تا روشهای زیادی برای احراز هویت فعال شود.
- محرمانگی توکن را برای کلاینتهای اینترنتی مدیریت کنید.
- بهترین شیوهها را برای برنامههای مبتنی بر مرورگر دنبال کنید تا در صورت بهرهبرداری از اسکریپت بین سایتی (XSS) آسیب محدود شود.
- OAuth 2.0 را برای برنامههای خاص پلتفرم پیادهسازی کنید تا برنامههای دسکتاپ و تلفن همراه را ایمن کنید.
- تفاوتهای امنیتی خاص کلاینت را در یک دروازه API مدیریت کنید.
- OAuth 2.0 را با امنیت زیرساخت ترکیب کنید.
- کد برنامه را قابل حمل و مبتنی بر استاندارد نگه دارید.
- با شرایط خطا برخورد کنید و جریانهای سرتاسری قابل اعتماد را تضمین کنید.
محیطهای ابری بومی
ما تصمیم گرفتیم کتاب Cloud Native Data Security with Oauth را در یک محیط ابری بومی قرار دهیم، زیرا معتقدیم که چنین محیطی ویژگیهای بهینه را برای مدیریت APIهای ایمن فراهم میکند.
فناوریهای ابری بومی، سازمانها را قادر میسازند تا برنامههای مقیاسپذیر را در محیطهای مدرن و پویا مانند ابرهای عمومی، خصوصی و ترکیبی بسازند و اجرا کنند. کانتینرها، مشهای سرویس، میکروسرویسها، زیرساخت تغییرناپذیر و APIهای اعلانی نمونههایی از این رویکرد هستند.
CNCF Cloud Native Definition v1.0
در چارچوب کتاب Cloud Native Data Security with Oauth، فناوریهای مرتبط برای معماری امنیتی و همچنین نمونههای کد، کانتینرها، مشهای سرویس و میکروسرویسها هستند. ما هیچ فرضی در مورد اینکه آیا شما یک ابر عمومی، خصوصی یا ترکیبی را اجرا میکنید، نمیکنیم. شما میتوانید مفاهیمی را که در کتاب Cloud Native Data Security with Oauth ارائه میدهیم، صرف نظر از نوع ابر، اعمال کنید.
ما انتخاب، قابلیت حمل و آیندهنگری را که پلتفرمهای ابری بومی ارائه میدهند، دوست داریم. ما فکر میکنیم که شما باید از این ویژگیها نه تنها برای APIهای خود، بلکه برای اجزای پشتیبانی (امنیتی) نیز استفاده کنید. اجزای امنیتی حیاتی هستند، بنابراین باید از دسترسی بالایی برخوردار باشند. بنابراین، علاوه بر امنیت، برخی از رفتارهای عملیاتی را نیز توضیح میدهیم.
آنچه واقعاً در مورد ابری بومی عالی است این واقعیت است که گزینههای غنی را برای ما فراهم میکند تا امنیت سرتاسری را روی یک رایانه مستقل نشان دهیم. با این حال، در نهایت، میتوانید الگوهای طراحی را که ما توضیح میدهیم، در انواع دیگر محیطها نیز اعمال کنید. در صورت امکان، ما راه حلها را بر اساس استانداردها و بهترین شیوههای منتشر شده قرار میدهیم. بنابراین، شما باید بتوانید از محتوایی که ارائه میدهیم، صرف نظر از پلتفرم میزبانی که استفاده میکنید یا ترجیحات فناوری خود، بهرهمند شوید.
کتاب Cloud Native Data Security with Oauth چه چیزی نیست؟
کتاب Cloud Native Data Security with Oauth یک راهنمای کامل برای امنیت ابری بومی نیست. ما ابر بومی و Kubernetes را از ابتدا به شما آموزش نخواهیم داد، اما به شما نشان خواهیم داد که چگونه اجزای امنیتی ابری بومی را در یک رایانه توسعه، در یک خوشه Kubernetes پیکربندی کنید. برای بهترین درک، باید دانش قبلی در مورد اجرای برنامهها در Kubernetes داشته باشید.
ما همچنین یک مرجع جامع که تمام جنبههای OAuth 2.0 را پوشش دهد، ارائه نمیدهیم. ما OAuth 2.0 را به شما معرفی خواهیم کرد و نیازی به تجربه قبلی با پروتکل ندارید. با این حال، ما میخواهیم به جای توضیح گام به گام هر جریان یا توصیف هر مشخصات از خانواده OAuth 2.0، بر جنبههای عملی طراحی یک راه حل امنیتی مبتنی بر OAuth 2.0 تمرکز کنیم.
ما از بررسیهای عمیق امنیت سطح پایین صرف نظر خواهیم کرد. به عنوان مثال، ما شما را در مورد الگوریتمهای توصیه شده فعلی برای امضای توکنها مطلع خواهیم کرد، اما این الگوریتمها یا رمزنگاری قوی آنها را توضیح نخواهیم داد. ما همچنین نحوه ایمنسازی سیستمعاملها، کانتینرها، پایگاههای داده یا سایر زیرساختها را پوشش نمیدهیم.
استفاده از نمونههای کد
ما تئوری کتاب Cloud Native Data Security with Oauth را با نمونههای کد که میتوانید از مخزن GitHub کتاب دانلود کنید، تکمیل میکنیم. استفاده از نمونههای کد کاملاً اختیاری است، اما اگر میخواهید یک پیادهسازی کارآمد را برای مقایسه داشته باشید، ممکن است مفید باشد. این مثالها برخی از الزامات امنیتی دشوار را با استفاده از کد مبتنی بر استاندارد که امنیت دشوار را از برنامهها برونسپاری میکند، برآورده میکنند. برخی از نمونههای کد نسبتاً پیچیده هستند، زیرا از یک معماری بسیار توزیع شده استفاده میکنند و ممکن است برای مطالعه کد و اسناد README نیاز به صرف وقت داشته باشید.
هر نمونه کد یک راه حل سرتاسری ارائه میدهد که میتوانید بدون محدودیت روی یک ایستگاه کاری توسعه Windows، macOS یا Linux اجرا کنید. در صورت لزوم، میتوانید مثالها را در یک خوشه Kubernetes محلی نیز مستقر کنید. هنگامی که استقرار محلی را درک کردید، میتوانید از همان تکنیکها برای استقرار مثالها در یک محیط ابری بومی راه دور، مانند پلتفرم Kubernetes ارائه شده توسط ارائهدهنده ابر خود، استفاده کنید.
ما میخواهیم شما بتوانید به سرعت راهاندازی و اجرا شوید، بنابراین از نسخه رایگان Curity Identity Server به عنوان سرور مجوز پیشفرض استفاده میکنیم. ما همچنین از اجزای امنیتی ابری بومی مختلف و کتابخانههای امنیتی معتبر دیگر استفاده میکنیم. در صورت نیاز، میتوانید اجزای امنیتی را با اجزای جایگزین جایگزین کنید، تا زمانی که از استانداردها و قابلیت توسعه مورد نیاز پشتیبانی کنند. به دلیل تغییرات در پیادهسازی استانداردها، نمیتوانیم تضمین کنیم که نمونههای کد بلافاصله با هر محصول جایگزین کار خواهند کرد.
APIها و کلاینتهای مثال، بهترین شیوههای فعلی را در زمان نوشتن دنبال میکنند. بیشتر نمونههای کد و قطعه کدها از TypeScript به عنوان یک زبان ساده و در عین حال رسا استفاده میکنند. در پلتفرمهای تلفن همراه، ما از زبانهای خاص پلتفرم، یعنی Kotlin و Swift استفاده میکنیم. شما میتوانید الگوهای مشابه را در پشتههای فناوری جایگزین پیادهسازی کنید.
اصطلاحات
ما از اصطلاح OAuth برای نشان دادن چارچوب مجوز مدرن OAuth 2.0 استفاده میکنیم که برای اولین بار در RFC 6749 تعریف شد. OAuth 2.0 پشتیبانی فناوری قوی در تمام پشتههای فناوری API، وب و تلفن همراه فعلی دارد. OAuth 2.0 پروتکل OAuth 1.0 را از RFC 5849 جایگزین میکند، که یک راه حل محدودتر با مزایای معماری کمتر بود. در نتیجه، ما OAuth 1.0 را پوشش نمیدهیم، اما همیشه منظور ما از OAuth، OAuth 2.0 است.
API یک اصطلاح بارگذاری شده در دنیای فناوری اطلاعات است. در کتاب Cloud Native Data Security with Oauth، ما عمدتاً از اصطلاح API برای نشان دادن APIهای وب استفاده خواهیم کرد که دادهها را در معرض انواع مختلف کلاینتها قرار میدهند و از اصطلاحات APIها و میکروسرویسها به جای یکدیگر استفاده میکنیم.
ما از اصطلاح نقطه پایانی برای نشان دادن یک نقطه ورود به یک تابع مشخص در APIها یا یک جزء امنیتی استفاده میکنیم. ما از اصطلاحات کلاینتها و برنامهها برای نشان دادن کلاینتهای API استفاده میکنیم. APIها نیز میتوانند به عنوان کلاینت برای سایر APIها عمل کنند. تمرکز اصلی ما این است که چارچوب OAuth 2.0 را به گونهای اعمال کنیم که به بهترین وجه به APIها و کلاینتها خدمت کند.
اگر با Kubernetes کار میکنید، ممکن است اصطلاح API را در رابطه با پیکربندی یا صفحه کنترل Kubernetes ببینید. هنگامی که از اصطلاحات Kubernetes استفاده میکنیم که با دنیای عادی APIها و کلاینتها در تضاد هستند، به وضوح زمینه را توضیح میدهیم.
ساختار کتاب Cloud Native Data Security with Oauth
بسیاری از کتابهای OAuth با ورود کاربران شروع میکنند، که اغلب قابل مشاهدهترین بخش OAuth است. با این حال، برای تازه واردان OAuth معمول است که ورودها را کار کنند و سپس بعداً با مشکلات عمیقتری در APIها مواجه شوند. برای جلوگیری از این نوع نتیجه، ما یک رویکرد API-اول را دنبال میکنیم. بخش اول با مقدمهای آغاز میشود که منطق تجاری پشت OAuth 2.0 و ابری بومی را در فصل 1 کتاب Cloud Native Data Security with Oauth، “چرا به OAuth نیاز دارید؟” توضیح میدهد.
در مرحله بعد، فصل 2 کتاب Cloud Native Data Security with Oauth، “OAuth 2.0 خلاصه شده”، یک مرور کلی از نحوه عملکرد OAuth ارائه میدهد. سپس فصل 3 کتاب Cloud Native Data Security with Oauth، “معماری امنیتی”، بلوکهای ساختمانی برای ادغام با OAuth را توضیح میدهد. در نهایت، فصل 4 کتاب Cloud Native Data Security with Oauth، “طراحی داده OAuth”، نحوه نزدیک شدن به طراحی داده را نشان میدهد تا دادههای شما از ادغام با OAuth پشتیبانی کنند.
بخش دوم کتاب Cloud Native Data Security with Oauth به طور عمیق به توکنهای دسترسی و APIها میپردازد. این بخش به شما نشان میدهد که چگونه توکنهای دسترسی را طراحی کنید، چگونه کدی برای ایمنسازی دسترسی به دادهها در APIها بنویسید و چگونه از خطرات امنیتی رایج هنگام کار با توکنها اجتناب کنید. همچنین یاد خواهید گرفت که چگونه از الگوهای طراحی دروازه API در یک تنظیم Kubernetes استفاده کنید.
بخش سوم کتاب Cloud Native Data Security with Oauth به بررسی OAuth و اجزای آن در یک محیط ابری بومی، نحوه ترکیب ویژگیهای OAuth و پلتفرم ابری بومی و نحوه عملکرد اجزای OAuth ابری بومی میپردازد. همچنین نشان میدهد که چگونه هویتهای بار کاری و سایر تنظیمات پیشرفته را روی یک ایستگاه کاری توسعهدهنده اجرا کنید.
در نهایت، بخش چهارم کتاب Cloud Native Data Security with Oauth به کلاینتها و احراز هویت کاربر میپردازد. این بخش شامل نمونههای کد وب و موبایل است که از بهترین شیوههای امنیتی OAuth فعلی پیروی میکنند. فصل 14 کتاب Cloud Native Data Security with Oauth، “احراز هویت کاربر”، احراز هویت کاربر را پوشش میدهد.
این فصل از کتاب Cloud Native Data Security with Oauth چند موضوع را که احراز هویت مدرن را تشکیل میدهند، از جمله ثبت نام امن کاربر و ورودهای کاربر مبتنی بر رمزنگاری که تجربه ورود کاربر دوستانه را نیز ارائه میدهند، توضیح میدهد. ما همچنین مهاجرت کاربران از یک روش احراز هویت قدیمی به جدیدتر را در حالی که هویت کاربر را برای APIها یکسان نگه میداریم، پوشش میدهیم.
برخی از فصلها سنگین در تئوری و برخی دیگر کد محور هستند. شما میتوانید آزادانه بین فصلها جابجا شوید، زمانی که میخواهید مقداری کد اجرا کنید. به عنوان مثال، پس از خواندن فصل 2 کتاب Cloud Native Data Security with Oauth، ممکن است بخواهید یک جریان کد را کار کنید.
برای انجام این کار، میتوانید به فصل 12 کتاب Cloud Native Data Security with Oauth با عنوان، “OAuth برای برنامههای بومی”، که در مورد برنامههای خاص پلتفرم بپرید و سادهترین نوع کلاینت OAuth، یک برنامه کنسول را اجرا کنید. با این حال، برای کاملترین درک، توصیه میکنیم که با خواندن تمام فصلها به ترتیب ادامه دهید.
سرفصلهای کتاب Cloud Native Data Security with Oauth:
- Foreword
- Preface
- I. Introducing Cloud Native OAuth
- 1. Why Do You Need OAuth?
- 2. OAuth 2.0 Distilled
- 3. Security Architecture
- 4. OAuth Data Design
- II. Securing APIs with Tokens
- 5. Secure API Development
- 6. Access Token Design
- 7. Secure Access Tokens
- 8. Proxies, Gateways, and Sidecars
- 9. Entitlements
- III. Operating Cloud Native OAuth
- 10. Workload Identities
- 11. Managing a Cloud Native Authorization Server
- IV. Securing API Clients
- 12. OAuth for Native Applications
- 13. OAuth for Browser-Based Applications
- 14. User Authentication
- Index
- About the Authors
جهت دانلود کتاب Cloud Native Data Security with Oauth میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.