استخدام خدمة الاتحاد AD لتخويل المستخدمين AWS مع توزيع الحقوق

ترجمة مجانية لمقال Jeff Wierer " تمكين الاتحاد لـ AWS باستخدام Windows Active Directory و ADFS و SAML 2.0 " مع الإضافات والتوضيحات.

1. مصدر البيانات
2. التحضير
3. م التكوين
4. تثبيت ADFS
5. تكوين ADFS
6. تكوين AWS
7. اختبار
8. الأخطاء المعروفة وحلولها



1. مصدر البيانات

أثار م ويندوز 2016
استخدم المؤلف EC2 من Windows 2008R2 على Amazon ، لدي جهاز افتراضي في شبكة Windows 2016 المحلية مع إمكانية الوصول إلى الإنترنت.
حساب AWS (الذي سيدفع مقابل كل شيء)
ذراع مستقيم
الغرض: تمكين مستخدم AD من تسجيل الدخول إلى AWS باستخدام الحقوق المحددة (للحصول على دور) اعتمادًا على مجموعة AD.

القيادة:



1. يفتح المستخدم (سيكون بوب) الصفحة (https://ADFS.domain.name/adfs/ls/IdpInitiatedSignOn.aspx)

2. Bob مخول (تطلب ADFS الحقول المطلوبة في م)

3. يتلقى متصفح بوب البيانات اللازمة بتنسيق SAML من ADFS

4. يرسل المتصفح البيانات المستلمة إلى خدمة ترخيص SAML (https://signin.aws.amazon.com/saml)

5. متصفح بوب يحصل على عنوان URL لتسجيل الدخول لوحدة تحكم AWS

2. التحضير

2.1. لقد قمت بالفعل برفع م وبدأت مستخدمين في مجموعات مختلفة.

2.2. أثار معهد الدراسات الإسماعيلية ( كيفية رفع دور معهد الدراسات الإسماعيلية )

2.3. توليد شهادة SSL موقعة ذاتيا. ( كيفية إنشاء شهادة SSL موقعة ذاتياً ) قم بتثبيتها فورًا للموقع الافتراضي.

3. م التكوين

3.1. تحتاج إلى إنشاء مجموعتين AWS-Production و AWS-Billing

3.2. قم بإنشاء مستخدم Bob (انتباه!) يجب على المستخدم ملء حقل البريد الإلكتروني: bob@youdomain.com ، وإلا ستتلقى خطأ عند إدخال وحدة التحكم في AWS)

3.3. أضف Bob إلى AWS-Production و AWS-Billing Groups

3.4. قم بإنشاء مستخدم ADFSSVC آخر. حساب خدمة خاص للاتصال م.

4. تثبيت ADFS

هناك عدة إصدارات من ADFS

  • ADFS 1.0 - Windows Server 2003 R2 (تنزيل إضافي)
  • ADFS 1.1 - Windows Server 2008 و Windows Server 2008 R2
  • ADFS 2.0 - Windows Server 2008 و Windows Server 2008 R2 (تنزيل من Microsoft.com)
  • ADFS 2.1 - Windows Server 2012
  • ADFS 3.0 - Windows Server 2012 R2 [5]

  • ADFS 4.0 - Windows Server 2016 - خيارنا
  • ADFS 5.0 - خادم ويندوز 2019

يقوم المؤلف بتنزيل ADFS v2 وتثبيته.
سنرفع دور ADFS
ليست هناك صعوبة ، فهناك ثلاث لقطات شاشة تساعدك على النقر فوق الزر التالي>

لقطات
صورة
صورة
صورة
لدي بالفعل تثبيته لذلك يبدو مختلفا بعض الشيء.
التالي ، التالي ، تثبيت ...

5. تكوين ADFS

يتيح لك هذا الرابط الاتصال بمكون ADFS

صورة

صورة

صورة

الاتصال م مع المستخدم الحالي.

صورة

نحن هنا بحاجة إلى الشهادة التي أنشأناها في IIS (القسم 2.3) واسم ADFS في المستقبل (adfs.you-domain.com) ، خط العرض هو اسم شركتك

صورة

نختار حساب الخدمة ADFSSVC الذي أنشأناه في القسم 3.4

صورة

إنشاء قاعدة بيانات جديدة

صورة

جارٍ التحقق ...

صورة
التحقق من التثبيت المسبق ... انقر فوق "تكوين"

صورة

القيام به.

تبدأ وحدة التحكم بالبحث عن "إدارة AD" في مصطلح بحث windows.

صورة

صورة

بعد ذلك ، انتقل إلى علاقات الثقة واختر Relying Party Trusts

الزر الأيمن -> إضافة Relying Party Trust

صورة

اختيار المطالبات علم

صورة

حدد "استيراد البيانات التي نشرها الطرف المعتمد على الإنترنت ..." وأدخل السطر https://signin.aws.amazon.com/static/saml-metadata.xml ، وهو نفسه للجميع ويتم توفيره بواسطة AWS.

صورة

ارفع اسم " AWS GO " وفقًا لتقديرك أو اتركه كما هو.

صورة

نختار "السماح لكل مستخدم ..." بالوصول للجميع.

صورة

إعادة فحص وتم.

صورة

انقر بزر الماوس الأيمن على المرحلات الخاصة بنا واختر "تحرير سياسة إصدار المطالبة"

صورة

نبدأ في إضافة قواعدنا:

5.1 الحصول على اسم مستخدم. قالب: تحويل مطالبة واردة ، ثم املأ الحقول:

أ. اسم قاعدة المطالبة: NameId
ب. نوع المطالبة الواردة: اسم حساب Windows
ج. نوع المطالبة الصادر: معرف الاسم
د. تنسيق معرف الاسم الصادر: معرف ثابت
ه. تمر من خلال جميع القيم المطالبة: فحص

صورة

القيام به.

5.2 الحصول على قائمة الأدوار للمستخدم. قالب: إرسال سمات LDAP كمطالبات ،

صورة

الملعب:

أ. اسم قاعدة المطالبة: RoleSessionName
ب. متجر السمة: الدليل النشط
ج. سمة LDAP: عناوين البريد الإلكتروني
د. نوع المطالبة الصادرة:

 https://aws.amazon.com/SAML/Attributes/RoleSessionName 

صورة

حرر

5.3 ملاحظة مهمة: في هذه القاعدة ، سيتم استخراج جميع الأدوار للمستخدم وتعيينها لأدوار مماثلة في IAM (أي الأدوار التي تبدأ بـ AWS -...). هذه القاعدة تسترجع جميع العضويات م. قالب: إرسال مطالبات باستخدام قاعدة مخصصة

صورة

، الحقل
أ. اسم قاعدة المطالبة: الحصول على مجموعات إعلانية
ب. دور مخصص:

 c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value); 

صورة

لإضافة القاعدة التالية ، ستحتاج إلى العودة بعد الخطوة 6 (أو يمكنك إضافتها وتغيير المعرّف لاحقًا)

5.4 أضف قاعدة أخرى مثل 5.3 سيكون مثل هذا:

أ. اسم قاعدة المطالبة: Roless
ب. دور مخصص:

 c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-provider/ADFS,arn:aws:iam::123456789012:role/ADFS-")); 

صورة

تحتاج هنا إلى تغيير القيمة 123456789012 إلى قيمتها الخاصة بك من IAM AWS

صورة

سيتم توضيح ذلك في الفقرة 6.

6. تكوين AWS

جميع الإجراءات تجري في وحدة AWS :)

6.1 إنشاء مزود SAML

أ. IAM -> موفري الهوية -> إنشاء موفر
نوع المزود - SAML
اسم المزود - ADFS
مستند البيانات الوصفية - يجب أخذ هذه المجموعة (تنزيلها) على خادم FS على https: ///FederationMetadata/2007-06/FederationMetadata.xml
إذا كان الملف غير متاح ، راجع النقطة 8 - الأخطاء المعروفة وحلولها

صورة

ب. إنشاء دورين لمستخدمينا.
أدوار IAM الأدوار -> إنشاء دور

صورة

قم برسم السياسات اللازمة (على سبيل المثال ، الفواتير (السياسة الافتراضية) للمستخدمين الذين سيراقبون الأموال ، أو يمكنك إنشاء السياسة الخاصة بك مسبقًا وتعيينها هنا)

صورة

تعيين العلامات إذا لزم الأمر ...

صورة

إعطاء اسم: يجب أن يتطابق الاسم بعد "-" مع الاسم في م بعد "-" ASFS- الفوترة = AWS- الفوترة في هذه الحالة سيكون المستخدم الخاص بك في المجموعة الصحيحة.

وانقر فوق إنشاء دور

صورة

7. اختبار

7.1 في المتصفح المفضل لديك ، انتقل إلى صفحة الخادم الخاصة بك https://localhost/adfs/ls/IdpInitiatedSignOn.aspx (يلزم تأكيد شهادة موقعة ذاتيًا)

سيتم فتح صفحة ذات محتوى مماثل.

صورة

أدخل بيانات مستخدمنا م

صورة

ويتم إعادة توجيهنا إلى صفحة AWS مع اقتراح بالدور الذي سيعمل بموجبه المستخدم في AWS

صورة

وذلك لأن Bob لدينا هو في مجموعتين م في نفس الوقت (AWS- الإنتاج و AWS الفواتير).

نختار AWS-billing ونرى الإعدادات اللازمة (يمكننا النظر في الميزانية وتعديلها ولكن ليس من حقنا إنشاء EC2 وفقًا للأدوار التي حددناها لها)

صورة

8. الأخطاء المعروفة وحلولها

8.1 البوابة لا تستجيب أو لا تستطيع العثور على الصفحات اللازمة. على سبيل المثال:

 https://localhost/adfs/ls/IdpInitiatedSignOn.aspx 

الحل: على خادم ADFS ، يجب تشغيل الأمر PowerShell

 Set-AdfsProperties -EnableIdPInitiatedSignonPage $true 

يمكنك وضع الشعار على صفحة الترحيب على الفور

 Set-AdfsWebTheme -TargetName default -Illustration @{path="C:\path\adfslogo.jpg"} 

8.2 عند إعادة التوجيه إلى وحدة التحكم AWS ، تحصل على خطأ في النموذج:

 RoleSessionName is required in AuthnResponse (Service: AWSSecurityTokenService; Status Code: 400; Error Code: InvalidIdentityToken; Request ID: e4ddf8cd-d7b7-11e9-8729-09c90d2561b0). Please try again 

الحل: على الأرجح أن المستخدم ليس لديه حقل بريد إلكتروني في م

صورة

الحل 2: ربما يكون هناك خطأ في كتابة المجموعة في م ودورها في AWS

Source: https://habr.com/ru/post/ar466859/


All Articles