المصادقة
للتفاعل مع الخادم، تحتاج واجهة CLI إلى مصادقة الطلبات باستخدام [مصادقة حامل] (https://swagger.io/docs/specification/authentication/bearer-authentication/). تدعم CLI المصادقة كمستخدم أو كحساب أو باستخدام رمز OIDC المميز.
كمستخدم
عند استخدام CLI محليًا على جهازك، نوصي بالمصادقة كمستخدم. للمصادقة كمستخدم، تحتاج إلى تشغيل الأمر التالي:
bash
tuist auth loginسينقلك الأمر عبر تدفق المصادقة المستند إلى الويب. بمجرد المصادقة، ستخزن CLI رمزًا مميزًا للتحديث طويل الأجل ورمز وصول قصير الأجل ضمن ~/.config/tuist/credentials. يمثل كل ملف في الدليل المجال الذي قمت بالمصادقة عليه، والذي يجب أن يكون افتراضيًا tuist.dev.json. المعلومات المخزنة في هذا الدليل حساسة، لذا تأكد من الحفاظ عليها آمنة.
ستبحث CLI تلقائيًا عن بيانات الاعتماد عند إجراء طلبات إلى الخادم. إذا انتهت صلاحية رمز الوصول، ستستخدم CLI رمز التحديث للحصول على رمز وصول جديد.
رموز OIDC
بالنسبة لبيئات CI التي تدعم OpenID Connect (OIDC)، يمكن ل Tuist المصادقة تلقائيًا دون الحاجة إلى إدارة أسرار طويلة الأمد. عند التشغيل في بيئة CI مدعومة، ستقوم CLI تلقائيًا باكتشاف موفر رمز OIDC المميز وتبادل الرمز المميز المقدم من CI برمز وصول Tuist.
موفرو CI المدعومون
- إجراءات GitHub
- سيركلسي
- بيترايز
إعداد مصادقة OIDC
قم بتوصيل مستودعك بـ Tuist: اتبع دليل
تكامل GitHub لربط مستودع GitHub الخاص بك بمشروع Tuist الخاص بك.قم بتشغيل 'tuist auth login': في سير عمل CI الخاص بك، قم بتشغيل
tuist auth loginقبل أي أوامر تتطلب المصادقة. ستقوم CLI تلقائيًا باكتشاف بيئة CI والمصادقة باستخدام OIDC.
راجع دليل التكامل المستمر للاطلاع على أمثلة التكوين الخاصة بالموفر.
نطاقات الرمز المميز OIDC
يتم منح رموز OIDC الرموز المميزة ci مجموعة النطاق، والتي توفر الوصول إلى جميع المشاريع المتصلة بالمستودع. انظر [مجموعات النطاق] (#scope-groups) للحصول على تفاصيل حول ما يتضمنه النطاق ci.
المزايا الأمنية
تعد مصادقة OIDC أكثر أمانًا من الرموز المميزة طويلة الأجل للأسباب التالية:
- لا توجد أسرار للتدوير أو الإدارة
- الرموز قصيرة الأجل ومحددة النطاق لتشغيل سير العمل الفردي
- ترتبط المصادقة بهوية المستودع الخاص بك
الرموز المميزة للحساب
بالنسبة لبيئات CI التي لا تدعم OIDC، أو عندما تحتاج إلى تحكم دقيق في الأذونات، يمكنك استخدام رموز الحساب. تسمح لك الرموز المميزة للحساب بتحديد النطاقات والمشاريع التي يمكن للرمز المميز الوصول إليها بالضبط.
إنشاء رمز مميز للحساب
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 (سنوات). إذا لم يتم تحديد ذلك، لا تنتهي صلاحية الرمز المميز أبدًا. |
-المشاريع | قصر الرمز المميز على مقابض مشاريع محددة. يمكن للرمز المميز الوصول إلى جميع المشاريع إذا لم يتم تحديده. |
النطاقات المتاحة
| النطاق | الوصف |
|---|---|
الحساب: الأعضاء: قراءة | قراءة أعضاء الحساب |
الحساب: الأعضاء: الكتابة | إدارة أعضاء الحساب |
الحساب: السجل: قراءة | القراءة من سجل حزمة سويفت |
الحساب: السجل: الكتابة | النشر في سجل حزم سويفت |
المشروع:معاينات:قراءة | تنزيل المعاينات |
المشروع:معاينات:كتابة | تحميل المعاينات |
المشروع:المشرف:قراءة | قراءة إعدادات المشروع |
المشروع:المشرف:كتابة | إدارة إعدادات المشروع |
مشروع:ذاكرة التخزين المؤقت:قراءة | تنزيل الثنائيات المخزنة مؤقتاً |
مشروع:ذاكرة التخزين المؤقت:كتابة | تحميل الثنائيات المخزنة مؤقتاً |
المشروع:الحزم:قراءة | عرض الحزم |
المشروع:الحزم:كتابة | تحميل الحزم |
المشروع:الاختبارات:قراءة | قراءة نتائج الاختبار |
المشروع:الاختبارات:الكتابة | تحميل نتائج الاختبار |
المشروع:يبني:قراءة | قراءة تحليلات البناء |
المشروع:يبني:اكتب | تحميل تحليلات بناء التحميل |
المشروع:يعمل:قراءة | تشغيل أمر القراءة |
المشروع:يعمل:يكتب | إنشاء وتحديث عمليات تشغيل الأوامر |
مجموعات النطاق
توفر مجموعات النطاقات طريقة ملائمة لمنح نطاقات متعددة ذات صلة بمعرف واحد. عند استخدام مجموعة نطاقات، يتم توسيعها تلقائيًا لتشمل جميع النطاقات الفردية التي تحتويها.
| مجموعة النطاق | النطاقات المضمنة |
|---|---|
ci | المشروع:ذاكرة التخزين المؤقت:الكتابة ، المشروع:المعاينات:الكتابة ، المشروع:الحزم:الكتابة ، المشروع:الاختبارات:الكتابة ، المشروع:الإنشاءات:الكتابة ، المشروع:التشغيل:الكتابة |
التكامل المستمر
بالنسبة لبيئات CI التي لا تدعم OIDC، يمكنك إنشاء رمز مميز للحساب باستخدام مجموعة النطاق ci لمصادقة عمليات سير عمل CI الخاصة بك:
bash
tuist account tokens create my-account --scopes ci --name ciيؤدي هذا إلى إنشاء رمز مميز مع جميع النطاقات اللازمة لعمليات CI النموذجية (التخزين المؤقت، والمعاينات، والحزم، والاختبارات، والبناء، والتشغيل). قم بتخزين الرمز المميز الذي تم إنشاؤه كسر في بيئة CI الخاصة بك وقم بتعيينه كمتغير البيئة TUIST_TOKEN.
إدارة الرموز المميزة للحساب
لسرد جميع الرموز المميزة لحساب ما:
bash
tuist account tokens list my-accountلإلغاء رمز مميز بالاسم:
bash
tuist account tokens revoke my-account ci-cache-tokenاستخدام الرموز المميزة للحساب
من المتوقع أن يتم تعريف رموز الحساب كمتغير البيئة TUIST_TOKEN:
bash
export TUIST_TOKEN=your-account-tokenمتى يجب استخدام رموز الحساب
استخدم الرموز المميزة للحساب عند الحاجة:
- المصادقة في بيئات CI التي لا تدعم OIDC
- تحكم دقيق في العمليات التي يمكن أن يقوم بها الرمز المميز
- رمز مميز يمكنه الوصول إلى مشاريع متعددة داخل الحساب
- الرموز المميزة المحدودة زمنياً التي تنتهي صلاحيتها تلقائياً
