مهاجرت به OAUTH 2.1: چه چیزی تغییر کرده و چگونه کد شما را به روز می کند

شما احتمالاً قبلاً OAUTH را اجرا کرده اید. اما آیا شما برای 2.1 آماده هستید؟
OAUTH 2.0 به خوبی به ما خدمت کرده است. اما همانطور که عوامل هوش مصنوعی ، اسپا و معماری صفر به یک هنجار تبدیل می شوند ، برخی از الگوهای آن ترک ها را نشان می دهند.
اینجاست که OAUTH 2.1 وارد می شود.
اگر هنوز به جریانی مانند ضمنی یا پرش از PKCE بر روی مشتری های عمومی تکیه می کنید ، برای پاکسازی به تأخیر افتاده اید. و اگر شما در حال ساختن برنامه های کاربردی با هوش مصنوعی هستید (به ویژه ابزارهایی که کاربران ، خدمات و زمینه ها را شامل می شوند) ، سپس دست زدن به نشانه های ایمن و Scoped دیگر اختیاری نیست.
بیایید آنچه را که در OAUTH 2.1 تغییر کرده است ، چگونه با خیال راحت مهاجرت کنیم ، و چگونه می توان این الگوهای را در گردش کار عامل AI در دنیای واقعی اعمال کرد.
جریان ضمنی را رها کنید
اگر برنامه تک صفحه ای شما (SPA) هنوز از جریان ضمنی استفاده می کند ، وقت آن است که متوقف شوید.
در اینجا یک درخواست پرچم قرمز به نظر می رسد:
GET /authorize?
response_type=token&
client_id=ai-spa-client&
redirect_uri=https://myaiapp.com/callback&
scope=calendar.read
چرا این خطرناک است:
- توکن ها در URL بازگشتند – در تاریخ مرورگر و سیاهههای مربوط به
- بدون PKCE → بدون محافظت در صورت به خطر انداختن شبکه یا مرورگر
در عوض ، استفاده کنید جریان کد مجوز + PKCE (حتی برای مشتریان عمومی):
GET /authorize?
response_type=code&
client_id=ai-spa-client&
redirect_uri=https://myaiapp.com/callback&
scope=calendar.read&
code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&
code_challenge_method=S256
یک چالش PKCE ایجاد کنید (بله ، حتی برای SPA)
در اینجا نحوه تولید یک امنیت آورده شده است code_verifier
وت code_challenge
در جاوا اسکریپت:
// Generate a random string as code verifier
const codeVerifier = crypto.randomBytes(32).toString('hex');
// Generate code challenge (SHA256 base64url encoded)
async function generateCodeChallenge(verifier) {
const digest = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(verifier));
return btoa(String.fromCharCode(...new Uint8Array(digest)))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
const codeChallenge = await generateCodeChallenge(codeVerifier);
از این درخواست در هر درخواست AUT استفاده کنید ، و ذخیره کنید code_verifier
به طور موقت در مشتری برای مبادله توکن.
نشانه های تازه کردن را بچرخانید و استفاده مجدد را تشخیص دهید
POST /token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&
refresh_token=OLD_REFRESH_TOKEN&
client_id=CLIENT_ID
در سرور ، تشخیص دهید که آیا از یک نشانه تازه استفاده شده است. اگر بله ، آن را رد کنید. این حملات را دوباره پخش می کند و بهداشت کلی را بهبود می بخشد.
اعتبارسنجی را به طور جدی تغییر دهید
دیگر کارتهای وحشی نیست. فقط URI های تغییر مسیر دقیق باید پذیرفته شوند.
const allowedRedirectUris = ['https://app.example.com/callback'];
function validateRedirectUri(uri) {
return allowedRedirectUris.includes(uri);
}
OAUTH 2.1 تطبیق انعطاف پذیر را برای جلوگیری از سوء استفاده و تزریق کاهش می دهد.
غذای آماده: TL ؛ دکتر
OAUTH 2.1 فقط یک ارتقاء خاص نیست-این پایه و اساس گردش کار ایمن ، مقیاس پذیر و آماده است. از از بین بردن جریان ضمنی گرفته تا نیاز به چرخش PKCE و REFRESH TOKEN ، این نوار را برای امنیت پیش فرض بالا می برد.
اکنون زمان آن است که جریان های AUTH خود را مرور کنید. شروع با:
- pkce همه جا
- هیچ کمک هزینه ضمنی
- چرخش توکن را تازه کنید
- دامنه های دقیق
- جریان های ثابت
این کار را زود انجام دهید و سیستم های هوش مصنوعی شما امن تر خواهد بود.
نوبت شما!
ما دوست داریم بشنویم که چگونه شما تغییر می دهید. سوالات و تجربیات خود را در زیر رها کنید
اگر می خواهید یک شیرجه عمیق تر و یک راهنمای اجرای ، در اینجا یک نسخه دقیق ارائه شده است.