نحوه رفع پاسخ حاوی یک ادعای saml معتبر نیست

اگر این مقاله را میخوانید، هویتهای کاربر را خارج از AWS مدیریت میکنید و از فدراسیون ارائهدهنده هویت (IdP) استفاده میکنید تا به این هویتهای خارجی اجازه استفاده از منابع AWS در حساب خود را بدهید.
در این فرآیند احراز هویت، یکی از رایج ترین خطاها ممکن است لازم باشد با این موضوع روبرو شوید که “پاسخ حاوی یک ادعای saml معتبر نیست” و در این مقاله، میخواهم توصیههای عیبیابی برای حل آن را با شما به اشتراک بگذارم.
بررسی یک ادعای معتبر در پاسخ SAML یافت نشد
بررسی نام ویژگی و مقدار ویژگی در IdP شما
اگر از AWS استفاده می کنید (اما به طور کلی)، ادعای SAML نامعتبر عمدتاً زمانی رخ می دهد که پاسخ SAML از IdP شامل یک ویژگی با Name
تنظیم کنید https://aws.amazon.com/SAML/Attributes/Role
. ویژگی همچنین باید شامل یک یا چند باشد AttributeValue
عناصر، هر کدام با این دو رشته، با کاما از هم جدا می شوند:
- ARN نقشی که کاربر می تواند به آن نگاشت شود
- ARN ارائهدهنده SAML
به عنوان مثال:
<Attribute Name="<https://aws.amazon.com/SAML/Attributes/Role>">
<AttributeValue>arn:aws:iam::account-number:role/role-name1,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue>
</Attribute>
در اینجا نیز نمونه ای از رزولوشن برای Okta آورده شده است.
مشکلات همگام سازی زمان بین IdP و ارائه دهنده خدمات
https://docs.pulsesecure.net/WebHelp/Content/PCS/PCS_AdminGuide_8.2/Investigating a No valid assertion.htm
اگر ساعتهای SAML IdP و ارائهدهنده خدمات SAML (برای مثال AWS) همگامسازی نشده باشند، میتوان ادعا را نامعتبر تشخیص داد.و احراز هویت ناموفق است.
یک راه حل ممکن این است که IdP و ارائه دهنده خدمات خود را تأیید کنید می تواند همان سرور NTP را به اشتراک بگذارد یا ثابت کنید که ساعت سرور شما به روز است.
Metadata.xml مطابقت ندارد
به روز رسانی داده ها و ارتقاء می تواند باعث شود که گواهی ها دیگر توسط یک طرف فرآیند فدراسیون یا طرف دیگر مورد اعتماد نباشد.. سعی کنید metadata.xml را در دو طرف بررسی و به روز کنید تا گواهی ها دوباره مطابقت داشته باشند.
پیام SAML به درستی قالب بندی نشده است، دارای عناصر مفقود یا نامعتبر است
https://stackoverflow.com/questions/64158310/aws-sso-your-request-included-an-invalid-saml-response
گاهی اوقات این خطا نه تنها با ویژگی User بلکه به طور کلی در صورتی رخ می دهد که پیام نیاز به گنجاندن تمام اطلاعات مورد نیاز در قالب مورد نیاز باشد. مثلا:
- پیام امضا شد، اما امضا تایید نشد.
- ادعا حاوی یک غیر قابل قبول است محدودیت مخاطب.
- ادعا دیگر معتبر نیست، یا پیام منقضی شده است، ببینید مشکلات همگام سازی زمان بین IdP و ارائه دهنده خدمات.
- پاسخ SAML حاوی یک خطا بود نشان می دهد که ارائه دهنده ابر یک پیام SAML از یک IdP با کد وضعیت خطا دریافت کرده است.
به یاد داشته باشید که SAML با طرحواره سازگار است، بنابراین هنگام ایجاد درخواست XML باید استاندارد آن را رعایت کنید. برای مشاهده تمامی تگ های استاندارد حتما به این سند مراجعه کنید.
چند نمونه دیگر از اشتباهات املایی ممکن است:
- بدون کدگذاری در ابتدای XML:
نحوه مشاهده پاسخ SAML برای عیب یابی
https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_saml.html
این مقاله چندین ایده دارد که به شما کمک می کند تا علت دقیق این مشکل را محدود کنید. با این حال، من همچنین میخواهم نکات اساسی در مورد اشکالزدایی ادعای SAML که دریافت میکنید به شما ارائه دهم تا جزئیاتی را پیدا کنید که میتواند شما را به علت اصلی مشکلتان راهنمایی کند.
گوگل کروم و فایرفاکس
- مطبوعات F12 برای شروع ابزارهای توسعه دهنده کنسول.
- انتخاب کنید شبکه را برگه و سپس انتخاب کنید حفظ گزارش (ورود مداوم به فایرفاکس)
- به دنبال a پست SAML، سپس مشاهده کنید ظرفیت ترابری زبانه در بالا. به دنبال SAMLResponse عنصری که حاوی پاسخ کدگذاری شده با Base64 است.
- آن را کپی کنید.
💡 نکته امنیتی: از آنجایی که اظهارات SAML حاوی اطلاعات حساس است، شما را از استفاده منصرف میکنم رسیورهای آنلاین base64 و با استفاده از یکی از این اسکریپت های ساده آن را از ترمینال محلی خود انجام دهید.
- سیستم های ویندوز (PowerShell):
PS C:\\>[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("base64encodedtext"))
$echo "base64encodedtext" | base64 --decode
همچنین، اگر ویژگی های Identity Provider شما هستند رمزگذاری نشده است، افزونه SAML tracer مرورگر فایرفاکس یا رسیور پیام SAML Chrome می تواند این ویژگی ها را مشاهده کند.****
آموزش ها
برای کمک بیشتر به شما، در اینجا دو مقاله از وبلاگ ما وجود دارد که در آنها نکاتی را برای پیکربندی SAML با GSuite به اشتراک می گذاریم (توجه داشته باشید که مفاهیم و ویژگی ها مشابه سایر IdP ها هستند).
نتیجه گیری
در این مقاله نحوه عیب یابی یک خطای بسیار مزاحم فدراسیون SAML را دیدیم: “پاسخ حاوی یک ادعای SAML معتبر نبود.”
ما نشان دادهایم که ممکن است زمانی رخ دهد:
- ویژگی های نقش به درستی تنظیم نشده اند در درخواست SAML – سمت IdP.
- وجود دارد همگام سازی زمان بین IdP و ارائه دهنده خدمات.
- وجود دارد Metadata.xml مطابقت ندارد بین بازیگران، بنابراین گواهی مطابقت ندارد.
- وجود دارد غلط املایی یا ساختار SAML نامعتبر در درخواست شما
به طور کلی، زمانی که نیاز به عیب یابی پاسخ SAML داشته باشم، همیشه به این پیوند باز می گردم، زیرا ممکن است بسته به IdP مورد استفاده شما، مشکل در پیکربندی متفاوتی باشد.
این مقاله کوچک به همه شما کمک کرده است، و تا دفعه بعد، اظهارات SAML مبارک، شما را در مقاله بعدی می بینم! 😉