محتويات الدورة

GitHub Actions / الهوية والتنسيق والحوكمة / الدرس 13

اتحاد OIDC ومطالبات هوية ضيقة

افهم الوصول القصير دون إنشاء ثقة مزود أو جلب رمز.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • فصل إذن الهوية ومصادقتها وتفويض المزود.
  • مراجعة المُصدر والجمهور والموضوع وقيود البيئة.

يغيّر الاتحاد طريقة توزيع الاعتماد

يمكن لسير يحتاج وصولاً خارجياً استخدام اتحاد OIDC مع مزود داعم بدلاً من حفظ سر مزود طويل العمر في GitHub. تصدر GitHub رمز هوية موقعاً يصف المهمة، ويقيّم المزود علاقة ثقة مضبوطة قبل إصدار وصوله القصير. لا تختفي بيانات الاعتماد من النظام؛ تتغير طريقة الحصول عليها ومدة فائدتها. لا تطلب أمثلة Parcel أي رمز ولا تنشئ دوراً ولا تتصل بسحابة. ينبغي للمراجع تتبع الطرفين، لأن صحة هوية المهمة لا تحدد وحدها قدرات الوصول التي يمنحها الطرف الخارجي.

ليس id-token: write كتابة سحابية شاملة

يسمح إذن id-token للمهمة المؤهلة بطلب رمز هوية OIDC، ولا يمنح بذاته تعديل موارد سحابية. تظل ثقة المزود وتفويضه مسؤولتين عن قبول التبادل وقدرات الهوية الناتجة. ضع الإذن على المهمة الموثوقة الضيقة المحتاجة إليه فقط. يعلن المقطع القدرة دون طلب رمز أو إجراء مزود أو معرف حساب أو دور أو نشر. السطر المطبوع ليس دليلاً على المصادقة، ولا يعني وجود الحقل أن الإعداد الخارجي قد أُنشئ أو تحقق منه.

yaml مقطع إذن هوية
permissions:
  contents: read
  id-token: write
steps:
  - name: Explain the boundary
    run: printf "%s\n" "identity permission is not target authorization"

لا يصادق المقطع غير القابل للتشغيل في أي جهة. يجب أن يثق المزود بالمطالبات المناسبة ويمنح قدرات ضيقة مستقلاً؛ لا ينشئ الحقل أياً من العلاقتين.

طابق الهوية التي تقصد الوثوق بها

راجع المُصدر والجمهور المقصود والموضوع أو المطالبات المكافئة المدعومة. قد يغير المستودع والمرجع والبيئة وسياق السير المشترك معلومات الهوية وفق السلوك الموثق. قد تسمح قاعدة لكل الفروع أو المستودعات بشيفرة لا ينبغي أن تحمل سلطة إصدار. لا تنسخ صيغة الموضوع من الذاكرة؛ اشتقها من المرجع للبيئة والمزود المختارين. راجع أيضاً أثر نقل المستودع وتسميته والعمر وقيود مفاتيح الشروط، قبل اعتبار مطابقة نصية سياسة دائمة. تحتاج تغييرات الهوية المشروعة مراجعة لا توسيعاً غير محدود للثقة.

قيّم التوقعات بعد المصادقة

يفترض النموذج المحلي الكامل اكتمال المصادقة التشفيرية ثم يفحص مطالبات افتراضية. يرفض جمهوراً خاطئاً رغم تطابق الموضوع. لا يحلل JWT ولا يتحقق من التوقيع أو النهاية ولا يجلب مفاتيح أو يبادل اعتماداً؛ وكلها ضرورية في التحقق الحقيقي. الرمز المفكوك بيانات مقروءة فقط حتى تثبت أصالته وصلاحيته. لا تطبع رمزاً حقيقياً في سجل مهمة لاكتشاف المطالبات. يهدف المثال إلى توضيح التمييز بين توثيق الادعاء وقبول معناه، ولا يختصر خطوات الأمن في مقارنة قاموس.

python سياسة مطالبات افتراضية موثقة مسبقاً
expected = {"issuer": "ci-issuer-lab", "audience": "parcel-provider-lab", "subject": "trusted-release-job"}
def matches(claims):
    return all(claims.get(k) == v for k, v in expected.items())
good = dict(expected)
bad = dict(expected, audience="other-consumer")
print(matches(good))
print(matches(bad))
الناتج المتوقع
True
False

الأسماء ليست روابط مُصدر أو جمهوراً أو صيغة موضوع فعلية. لا يوفر الحساب أمان رمز وليس مدققاً.

يحتاج العمر القصير تنفيذاً موثوقاً

يستطيع من يتحكم بمدخل تنفيذي في مهمة اتحادية استخدام السلطة القصيرة فوراً. قيّد تأثير المصدر والإجراءات المراجعة وهوية المشغّل والذاكرة كما تفعل مع سر محفوظ. قد توفر موافقة البيئة حداً، لكن يجب بقاء المرشح والهدف واضحين. تحد أقل صلاحية لدى المزود الضرر الممكن أثناء العمر، وتحد النهاية القصيرة الاستمرار. لا يعوض أحدهما الآخر ولا يبرر الاتحاد منح دور إداري. احفظ دليلاً منقحاً للهوية والعملية يكفي للتشخيص دون الاحتفاظ برموز حاملة يمكن إعادة استخدامها.

الأخطاء الشائعة وإصلاحها

يُعد id-token: write وصولاً لموارد المزود.

لماذا يحدث؟
اختلط إصدار الهوية بالتفويض الخارجي.
كيف تصلحه؟
راجع الثقة وأذونات الدور منفصلتين.
كيف تتجنب تكراره؟
وثق التبادل وحدود القدرة كاملة.

يُقبل موضوع مفكوك دون توقيع.

لماذا يحدث؟
عومل المقروء كادعاء موثق.
كيف تصلحه؟
استخدم التحقق والثقة المدعومين للمزود.
كيف تتجنب تكراره؟
افصل الفك والمصادقة والصلاحية والسياسة.

يثق الاتحاد بكل فروع مستودع موثوق.

لماذا يحدث؟
تجاوز حد المصدر سياسة الإصدار.
كيف تصلحه؟
قيد المطالبات والمسارات الموثوقة.
كيف تتجنب تكراره؟
راجع الرفض وتغير دورة المستودع.

اختبر فهمك

1. تنتهي صلاحية رمز الهوية بعد خمس دقائق. هل يصبح من الآمن منح مهمة سير العمل صلاحيات إدارية واسعة لهذا السبب؟

اعرض الحل المشروح

لا. يمكن تنفيذ عملية مدمرة خلال ثوانٍ. تقصر مدة صلاحية بيانات الاعتماد فترة إمكان استمرار استخدامها، بينما يحد مبدأ أقل صلاحية من الأفعال التي تستطيع المهمة تنفيذها. طبّق الأمرين معاً، مع مدخلات موثوقة وقيود تخص الهدف المعني. لا يبرر استخدام اتحاد الهوية توسيع سلطة المهمة.

2. رفض المزود مهمة بيئة بعد تغير الموضوع. ماذا تفحص؟

اعرض الحل المشروح

قارن الصيغة الموثقة والجمهور والشروط والبيئة المقصودة. راجع تحديثاً ضيقاً إن كان مشروعاً، ولا تقبل كل موضوع أو تطبع الرمز للتشخيص.

أهم ما تعلمته

  • إذن الهوية وتفويض الهدف منفصلان.
  • وثّق المطالبات قبل سياسة ثقة ضيقة.

المراجع الرسمية