# المصادقة {#authentication}
للتفاعل مع الخادم، تحتاج واجهة CLI إلى مصادقة الطلبات باستخدام [مصادقة حامل]
(https://swagger.io/docs/specification/authentication/bearer-authentication/).
تدعم CLI المصادقة كمستخدم أو كحساب أو باستخدام رمز OIDC المميز.
## كمستخدم {#as-a-user}
عند استخدام CLI محليًا على جهازك، نوصي بالمصادقة كمستخدم. للمصادقة كمستخدم،
تحتاج إلى تشغيل الأمر التالي:
```bash
tuist auth login
```
سينقلك الأمر عبر تدفق المصادقة المستند إلى الويب. بمجرد المصادقة، ستخزن CLI
رمزًا مميزًا للتحديث طويل الأجل ورمز وصول قصير الأجل ضمن
`~/.config/tuist/credentials`. يمثل كل ملف في الدليل المجال الذي قمت بالمصادقة
عليه، والذي يجب أن يكون افتراضيًا `tuist.dev.json`. المعلومات المخزنة في هذا
الدليل حساسة، لذا **تأكد من الحفاظ عليها آمنة**.
ستبحث CLI تلقائيًا عن بيانات الاعتماد عند إجراء طلبات إلى الخادم. إذا انتهت
صلاحية رمز الوصول، ستستخدم CLI رمز التحديث للحصول على رمز وصول جديد.
## رموز OIDC المميزة {#oidc-tokens}
بالنسبة لبيئات CI التي تدعم OpenID Connect (OIDC)، يمكن ل Tuist المصادقة
تلقائيًا دون الحاجة إلى إدارة أسرار طويلة الأمد. عند التشغيل في بيئة CI مدعومة،
ستقوم CLI تلقائيًا باكتشاف موفر رمز OIDC المميز وتبادل الرمز المميز المقدم من CI
برمز وصول Tuist.
### مزودو خدمات CI المدعومون {#supported-ci-providers}
- إجراءات GitHub
- سيركلسي
- بيترايز
### إعداد مصادقة OIDC {#setting-up-oidc-authentication}
1. **قم بتوصيل مستودعك بـ Tuist**: اتبع دليل
تكامل
GitHub لربط مستودع GitHub الخاص بك بمشروع Tuist الخاص بك.
2. **قم بتشغيل 'tuist auth login'**: في سير عمل CI الخاص بك، قم بتشغيل `tuist
auth login` قبل أي أوامر تتطلب المصادقة. ستقوم CLI تلقائيًا باكتشاف بيئة CI
والمصادقة باستخدام OIDC.
راجع دليل
التكامل المستمر للاطلاع على أمثلة التكوين الخاصة بالموفر.
### نطاقات رموز OIDC الرمزية {#oidc-token-scopes}
يتم منح رموز OIDC الرموز المميزة `ci` مجموعة النطاق، والتي توفر الوصول إلى جميع
المشاريع المتصلة بالمستودع. انظر [مجموعات النطاق] (#scope-groups) للحصول على
تفاصيل حول ما يتضمنه النطاق `ci`.
::: tip SECURITY BENEFITS
تعد مصادقة OIDC أكثر أمانًا من الرموز المميزة طويلة الأجل للأسباب التالية:
- لا توجد أسرار للتدوير أو الإدارة
- الرموز قصيرة الأجل ومحددة النطاق لتشغيل سير العمل الفردي
- ترتبط المصادقة بهوية المستودع الخاص بك
:::
## الرموز المميزة للحساب {#account-tokens}
بالنسبة لبيئات CI التي لا تدعم OIDC، أو عندما تحتاج إلى تحكم دقيق في الأذونات،
يمكنك استخدام رموز الحساب. تسمح لك الرموز المميزة للحساب بتحديد النطاقات
والمشاريع التي يمكن للرمز المميز الوصول إليها بالضبط.
### إنشاء رمز مميز للحساب {#creating-an-account-token}
```bash
tuist account tokens create my-account \
--scopes project:cache:read project:cache:write \
--name ci-cache-token \
--expires 1y
```
يقبل الأمر الخيارات التالية:
| الخيار | الوصف |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--النطاقات` | مطلوب. قائمة نطاقات مفصولة بفواصل لمنح الرمز المميز. |
| `--الاسم` | مطلوب. معرّف فريد للرمز المميز (من 1-32 حرفاً، أبجدي رقمي وواصلات وشرطات سفلية فقط). |
| `-تنتهي صلاحيته` | اختياري. متى يجب أن تنتهي صلاحية الرمز المميز. استخدم التنسيق مثل `30d` (أيام)، أو `6m` (أشهر)، أو `1y` (سنوات). إذا لم يتم تحديد ذلك، لا تنتهي صلاحية الرمز المميز أبدًا. |
| `-المشاريع` | قصر الرمز المميز على مقابض مشاريع محددة. يمكن للرمز المميز الوصول إلى جميع المشاريع إذا لم يتم تحديده. |
### النطاقات المتاحة {#available-scopes}
| النطاق | الوصف |
| ---------------------------------- | --------------------------------- |
| `الحساب: الأعضاء: قراءة` | قراءة أعضاء الحساب |
| `الحساب: الأعضاء: الكتابة` | إدارة أعضاء الحساب |
| `الحساب: السجل: قراءة` | القراءة من سجل حزمة سويفت |
| `الحساب: السجل: الكتابة` | النشر في سجل حزم سويفت |
| `المشروع:معاينات:قراءة` | تنزيل المعاينات |
| `المشروع:معاينات:كتابة` | تحميل المعاينات |
| `المشروع:المشرف:قراءة` | قراءة إعدادات المشروع |
| `المشروع:المشرف:كتابة` | إدارة إعدادات المشروع |
| `مشروع:ذاكرة التخزين المؤقت:قراءة` | تنزيل الثنائيات المخزنة مؤقتاً |
| `مشروع:ذاكرة التخزين المؤقت:كتابة` | تحميل الثنائيات المخزنة مؤقتاً |
| `المشروع:الحزم:قراءة` | عرض الحزم |
| `المشروع:الحزم:كتابة` | تحميل الحزم |
| `المشروع:الاختبارات:قراءة` | قراءة نتائج الاختبار |
| `المشروع:الاختبارات:الكتابة` | تحميل نتائج الاختبار |
| `المشروع:يبني:قراءة` | قراءة تحليلات البناء |
| `المشروع:يبني:اكتب` | تحميل تحليلات بناء التحميل |
| `المشروع:يعمل:قراءة` | تشغيل أمر القراءة |
| `المشروع:يعمل:يكتب` | إنشاء وتحديث عمليات تشغيل الأوامر |
### مجموعات النطاق {#scope-groups}
توفر مجموعات النطاقات طريقة ملائمة لمنح نطاقات متعددة ذات صلة بمعرف واحد. عند
استخدام مجموعة نطاقات، يتم توسيعها تلقائيًا لتشمل جميع النطاقات الفردية التي
تحتويها.
| مجموعة النطاق | النطاقات المضمنة |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ci` | `المشروع:ذاكرة التخزين المؤقت:الكتابة` ، `المشروع:المعاينات:الكتابة` ، `المشروع:الحزم:الكتابة` ، `المشروع:الاختبارات:الكتابة` ، `المشروع:الإنشاءات:الكتابة` ، `المشروع:التشغيل:الكتابة` |
### التكامل المستمر {#continuous-integration}
بالنسبة لبيئات CI التي لا تدعم OIDC، يمكنك إنشاء رمز مميز للحساب باستخدام مجموعة
النطاق `ci` لمصادقة عمليات سير عمل CI الخاصة بك:
```bash
tuist account tokens create my-account --scopes ci --name ci
```
يؤدي هذا إلى إنشاء رمز مميز مع جميع النطاقات اللازمة لعمليات CI النموذجية
(التخزين المؤقت، والمعاينات، والحزم، والاختبارات، والبناء، والتشغيل). قم بتخزين
الرمز المميز الذي تم إنشاؤه كسر في بيئة CI الخاصة بك وقم بتعيينه كمتغير البيئة
`TUIST_TOKEN`.
### إدارة الرموز المميزة للحساب {#managing-account-tokens}
لسرد جميع الرموز المميزة لحساب ما:
```bash
tuist account tokens list my-account
```
لإلغاء رمز مميز بالاسم:
```bash
tuist account tokens revoke my-account ci-cache-token
```
### استخدام الرموز المميزة للحساب {#using-account-tokens}
من المتوقع أن يتم تعريف رموز الحساب كمتغير البيئة `TUIST_TOKEN`:
```bash
export TUIST_TOKEN=your-account-token
```
::: tip WHEN TO USE ACCOUNT TOKENS
استخدم الرموز المميزة للحساب عند الحاجة:
- المصادقة في بيئات CI التي لا تدعم OIDC
- تحكم دقيق في العمليات التي يمكن أن يقوم بها الرمز المميز
- رمز مميز يمكنه الوصول إلى مشاريع متعددة داخل الحساب
- الرموز المميزة المحدودة زمنياً التي تنتهي صلاحيتها تلقائياً
:::