jwt – برنامه ی وب یک درخواست برای یک API REST زمانی که در حال تأیید صحت است

من تازه به ASP.NET هسته و OpenID اتصال / AzureAD، بنابراین من به دنبال برخی از اعتبار سنجی (و یا در غیر اینصورت) از رویکرد من است. خواندن / گوگلینگ گسترده در طول چند هفته گذشته در حالی که من در حال یادگیری این است که پاسخ دقیق نگرفته است (اگر چه بسیاری از تقریبا نادرست است)

من یک برنامه وب مبتنی بر مرورگر است که باید با آن امن AzureAD، به طوری که انتظار می رود، از این استفاده می کند. همه کارها خوب است.

همچنین یک API را در همان نرم افزار قرار می دهم. من نمیخواهم به علت نگرانی CSRF از کوکی استفاده کنم و نیاز به API برای سرویس دهی یک برنامه تلفن همراه در تاریخ بعدی است. من API را برای استفاده از JWT Bearer مبتنی بر auth پیکربندی کردم. همچنین به خوبی کار میکند (به عنوان مثال از پستمن درخواست میکند)

یکی از صفحات در برنامه وب نیاز به برقراری تماس AJAX به API دارد، و من نمیخواهم / باید برنامه را به یک SPA تبدیل کنم. بنابراین رویکردی که در حال حاضر در حال تلاش هستم این است:

وقتی وارد برنامه میشوم، حافظه (از طرف سرور) را از AzureAD دریافت میکنم. وقتی صفحه با تماس AJAX بازدید می شود، من "id_token" را به یک فیلد پنهان می نویسم و ​​هنگامی که نیاز به برقراری تماس AJAX دارم، خواندن id_token در جاوا اسکریپت و اضافه کردن آن به عنوان "مجوز" هدر.

این همه به عنوان یک رویا کار می کند، بنابراین من آن را نگران کرده ام و آن را نگران کرده ام. من نمی توانم مسائل CSRF را ببینم، چون تماس AJAX دیگر کوکی نیست. اگر چه من یک id_token را به صفحه می نویسم، کاربر باید کوکی ها را برای دیدن این صفحه در اولویت قرار دهد.

آیا چیزی است که من از آن چشم پوشی می کنم؟