المصادقة
OAuth 2.0 client credentials من خادم إلى خادم. رمز وصول موقّع لعشر دقائق، لا refresh tokens، ولا بيانات عميل في متصفح أبداً.
الحصول على الرمز
POST https://api.antisandbox.com/v1/oauth/token
content-type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=asc_…&client_secret=ass_…&scope=customers:read agent:runيُقبل JSON أيضاً، وكذلك HTTP Basic (client_id:client_secret). scope اختياري؛ إن غاب مُنحت كل نطاقات التطبيق. نطاق خارج المسموح = 400 invalid_scope.
{ "access_token": "eyJ…", "token_type": "Bearer", "expires_in": 600, "scope": "customers:read agent:run" }شكل الرمز
| الحقل | القيمة |
|---|---|
| alg / kid / typ | ES256 · key id from /.well-known/jwks.json · at+jwt |
| iss · aud | https://api.antisandbox.com · https://api.antisandbox.com/v1 |
| sub · app_id · organization_id · environment | client_id · معرّف التطبيق · المنظمة · sandbox | live |
| scope · jti · iat · exp | النطاقات مفصولة بمسافة · معرّف فريد · exp = iat + 600 |
البوابة تتحقق من الخوارزمية بالضبط (لا none ولا HS*)، ومن kid وiss وaud وexp وtyp، ثم تعيد قراءة التطبيق: نشط؟ نفس البيئة والمنظمة؟ العنوان ضمن القائمة المسموحة؟ تعليق التطبيق يسري مع الطلب التالي لا عند انتهاء الرمز.
الأخطاء
| HTTP | error | متى |
|---|---|---|
| 400 | invalid_request · unsupported_grant_type · invalid_scope | طلب ناقص، grant غير client_credentials، نطاق خارج المسموح |
| 401 | invalid_client | عميل مجهول، سر خاطئ، تطبيق معلّق، أو عنوان خارج القائمة — رد واحد عمداً |
| 403 | invalid_request | وجود ترويسة Origin (متصفح) |
| 429 | rate_limited | ٢٠ طلباً في الدقيقة لكل client ولكل IP |
التدوير
من شاشة التطبيق: «تدوير السر» يصدر سراً جديداً ويبقي القديم صالحاً لمدة التداخل (٢٤ ساعة افتراضياً، ٧٢ كحد أقصى)، و«إلغاء» ينهيه فوراً. الرموز الصادرة تبقى صالحة حتى انتهائها (≤ ١٠ دقائق). مفتاح التوقيع نفسه يُدوَّر من جهتنا مع إبقاء المفتاح العام السابق في JWKS ساعة — خزّن JWKS حسب kid وأعد جلبه عند kid مجهول.
الاكتشاف
https://api.antisandbox.com/.well-known/oauth-authorization-server (RFC 8414)
https://api.antisandbox.com/.well-known/oauth-protected-resource (RFC 9728)
https://api.antisandbox.com/.well-known/jwks.json