Authorization Code
مجوزی که در این بخش به معرفی آن خواهیم پرداخت Authorization Code میباشد که از رایجترین Grant ها در پروتکلOAuth میباشد. این Grant توسط برنامههای وب و بومی (native application) برای به دست آوردن Access Token به کار میرود. زمانی که یک کاربر، دسترسی برنامه به اطلاعات را تایید کند، Access Token صادر خواهد شد. شکل زیر روند Authorization Code را نشان میدهد. برای روشن شدن موضوع، شکل را بر اساس یک مثال شرح میدهیم.
4- چه زمانی باید از جریان Authorization Code استفاده کنیم؟
همانطور که قبلا گفته شد، جریان Authorization Codeبهترین استفاده را در برنامههای وب و موبایل دارد. از آنجا که Authorization Code Grant یک مرحله اضافی جهت تبادل Authorization Code برای Access Token دارد، یک لایه امنیتی اضافی را ارائه میدهد که در نوع Implicit Grant وجود ندارد (در فصل های بعد این نوع را توضیح میدهیم). مرحله تبادل کد تضمین میکند که یک مهاجم قادر به رهگیری Access Token نیست، زیرا همیشه Access Token از طریق یک کانال امن بین کلاینت و Authorization Server ارسال میشود.
در مستندات اصلی OAuth 2.0، یک Grant با نام PKCE زیر مجموعه Grant Type آورده شده است. در حقیقت یک افزونه یا Extension میباشد که جهت جلوگیری از حملات خاص در روند Authorization Code میتوان از آن استفاده کرد. توصیه میشود اگر از جریان Authorization Code در یک برنامه تلفن همراه یا هر نوع کلاینت دیگری که نمیتواند client secret را مخفی نگه دارد، استفاده میکنید، باید از افزونه PKCE استفاده کنید، که آن را در برابر حملات محافظت کند. در مورد PKCE در بخش بعد بیشتر صحبت میکنیم.