دو رکورد جداگانه تعیین می‌کنند که یک نشست AnyConnect کدام خط‌مشی گروه را دریافت می‌کند، و هر دو در بخش‌های متفاوتی از پیکربندی با حالت‌های خرابی متفاوت قرار دارند. نقشه ویژگی LDAP در هنگام احراز هویت، یک مقدار از دایرکتوری را به یک ویژگی مجوزدهی ASA ترجمه می‌کند؛ رکورد DAP پس از آن شرایط را ارزیابی می‌کند و می‌تواند ویژگی‌ها را اضافه یا بازنویسی کند. هر دو می‌توانند به یک نام خط‌مشی برسند، بنابراین ورود موفق هیچ چیزی درباره اینکه کدام سازوکار آن را ساخته است نمی‌گوید. هدف از مقایسه آن‌ها این است که آگاهانه یکی را انتخاب کنید، نه اینکه بگذارید دومی بی‌سروصدا اولی را کنار بگذارد.

دو سازوکار، دو نقطه تصمیم

انتخاب به سه پرسش خلاصه می‌شود. آیا تصمیم به یک مقدار ویژگی واحد از دایرکتوری بستگی دارد، آیا چیزی بیش از آن مقدار لازم است، و وقتی هر دو مطابقت دارند کدام سازوکار اجازه پیروزی دارد؟

اگر تنها ورودی عضویت در گروه باشد، نقشه ویژگی ابزار کوچک‌تر و آن است که بررسی آن آسان‌تر است: یک نقشه، متصل به یک سرور AAA، با یک خط برای هر گروه. اگر انتخاب باید وضعیت دستگاه، هویت نقطه پایانی، ویژگی دوم یا پنجره زمانی را در نظر بگیرد، ورودی‌های نقشه تمام می‌شود و DAP سازوکاری است که می‌تواند قاعده را بیان کند. اگر هر دو در کار باشند، پیش از نوشتن هر یک، اولویت را در نسخه خودتان بدانید، زیرا نشستی که با رکورد DAP مطابقت دارد ممکن است خط‌مشی‌ای را که نقشه بازگردانده حفظ نکند. باقی همه حساب‌داری است.

مسیر نقشه ویژگی، به ترتیب پیکربندی

مسیر نقشه از تعریف سرور AAA آغاز می‌شود. نقشه ویژگی باید به ورودی سرور LDAP متصل شود که نمایه اتصال واقعاً از آن استفاده می‌کند؛ نقشه‌ای که در پیکربندی در حال اجرا وجود دارد اما آن سرور به آن ارجاع نمی‌دهد هیچ چیز را تغییر نمی‌دهد. همان خط اتصال است که بقیه پیکربندی را زنده می‌کند. راهنمای نگاشت LDAP در ASA مرجع نحو نقشه در نسخه‌های 9.x است.

در داخل نقشه، یک دستور ویژگی دایرکتوری و ویژگی ASA را که تغذیه می‌کند نام می‌برد، و دستورهای بعدی مقادیر مشخص را ترجمه می‌کنند. map-name memberOf Group-Policy و پس از آن map-value memberOf CN=VPN-Support,OU=Groups,DC=corp,DC=example Support-ReadOnly شکل کار است: سمت چپ آن چیزی است که دایرکتوری بازگردانده، سمت راست نام خط‌مشی گروهی است که باید از قبل وجود داشته باشد. نام تمایزی و نام نمایشی خط‌مشی قابل جایگزینی نیستند، و یک تقریباً تطابق در هر یک از دو رشته هیچ خطایی در ورود ایجاد نمی‌کند.

دو جزئیات اینجا گاز می‌گیرند: memberOf هر گروهی را که حساب عضو آن است بازمی‌گرداند، بنابراین کاربری که در دو گروه نگاشت‌شده قرار دارد دو مقدار نامزد به نقشه می‌دهد، و قاعده الفبایی در راهنما تنها راه شکستن تساوی است که می‌توانید به آن تکیه کنید، نه ترتیب اولویت خودتان. مقدار نگاشت‌نشده هیچ چیزی نمی‌دهد، که بی‌سروصدا به خط‌مشی پیش‌فرض نمایه بازمی‌گردد.

مسیر DAP و آنچه اضافه می‌کند

DAP شرایط را ارزیابی می‌کند و ویژگی‌ها را روی نتیجه AAA اعمال می‌کند. یک رکورد اولویت، یک کنش و مجموعه‌ای از شرایط دارد؛ رکوردها به ترتیب اولویت ارزیابی می‌شوند و کنش تعیین می‌کند که ارزیابی ادامه می‌یابد یا متوقف می‌شود. این مدل اجرای متفاوتی از جست‌وجوی مقدار است، و دقیقاً به همین دلیل می‌تواند قواعدی را بیان کند که نقشه نمی‌تواند.

چیزی که DAP اضافه می‌کند ورودی‌ها است. شرایط می‌توانند به ویژگی‌های دایرکتوری، ویژگی‌های نقطه پایانی و وضعیت دستگاه ارجاع دهند، و رکورد منطبق می‌تواند ACLها، فهرست‌های URL یا فیلترهایی برای آن نشست حمل کند. بنابراین قاعده‌ای مانند اینکه کارکنان پشتیبانی روی لپ‌تاپ مدیریت‌شده خط‌مشی فقط‌خواندنی بگیرند و همان کارکنان روی دستگاهی بدون مدیریت خط‌مشی محدود بگیرند، در DAP قابل بیان است و نه در نقشه ویژگی. نقشه دقیقاً یک ورودی دارد: مقداری که دایرکتوری برای ویژگی نام‌برده شما بازگردانده است.

DAP همچنین نقطه دومی برای نگاه کردن اضافه می‌کند وقتی نشست در خط‌مشی اشتباه فرود می‌آید. رکوردی که با کنش ادامه مطابقت دارد ارزیابی را پایان نمی‌دهد، و رکورد بعدی می‌تواند نتیجه را تغییر دهد، بنابراین آنچه می‌بینید حاصل یک توالی است نه یک جست‌وجوی واحد. شماره‌های اولویت را به ترتیب بخوانید و به یاد داشته باشید که ممکن است رکورد پشتیبان همان باشد که کار را انجام می‌دهد. در مقابل، نقشه هیچ توالی‌ای ندارد: یک ویژگی، یک مقدار، یک پاسخ.

جایی که آن دو اختلاف دارند

اولویت همان بخشی است که طراحی‌ها را می‌شکند. وقتی نشستی هم با ورودی نقشه و هم با رکورد DAP مطابقت دارد، نتیجه به نسخه و به کنش رکورد بستگی دارد، پس آن را روی ASA خودتان بررسی کنید، نه اینکه فرض کنید نتیجه در اختیار یکی از سازوکارهاست.

سه حالت خرابی بیشتر سردرگمی را توضیح می‌دهند. نقشه‌ای که تعریف شده اما هرگز به برچسب سروری که نمایه استفاده می‌کند متصل نشده، خط‌مشی پیش‌فرض را بدون هیچ خطایی در جایی تولید می‌کند. رشته شرط DAP که در حروف بزرگ و کوچک یا فاصله‌ها با مقدار دایرکتوری تفاوت دارد هرگز مطابقت نمی‌کند و رکورد پشتیبان بی‌سروصدا اعمال می‌شود. و خط‌مشی گروهی که هنوز وجود ندارد توسط نقشه پذیرفته می‌شود، چون نقشه فقط یک نام بازمی‌گرداند، بنابراین نشست هیچ‌یک از مجوزهای موردنظر را نمی‌گیرد و چیزی در گزارش نیست که به شیء غایب اشاره کند. پیش از دست زدن به عضویت گروه، هر سه را بررسی کنید.

خواندن شواهد از یک نشست زنده

پاسخ را از یک نشست تازه بخوانید، نه از پیکربندی. show vpn-sessiondb detail anyconnect filter name jdoe خط‌مشی گروهی را که نشست واقعاً دریافت کرده چاپ می‌کند، و show running-config ldap attribute-map تأیید می‌کند که نقشه می‌توانست کدام مقادیر را بازگرداند. در سمت دایرکتوری، test aaa-server authentication LDAP-AD username jdoe password <password> ویژگی‌هایی را که ASA بازگردانده نشان می‌دهد، و debug ldap 255 وقتی آزمون با انتظار شما اختلاف دارد، تبادل را نشان می‌دهد.

سپس چهار رکورد را کتباً تطبیق دهید: مقدار دایرکتوری، نقشه یا شرط DAP پیکربندی‌شده، خط‌مشی گروه محلی و منبعی که کاربر واقعاً می‌توانست به آن برسد. اگر سه مورد اول هماهنگ باشند و چهارمی نه، مشکل در بدنه خط‌مشی است نه در انتخاب. اگر نشست نام خط‌مشی درست را نشان می‌دهد اما ACL اشتباه دارد، تماشای LDAP را کاملاً متوقف کنید. هر بار یک رکورد را تغییر دهید و یک نشست جدید را دوباره بررسی کنید، چون نشست بازمتصل‌شده تنها شاهدی است که پیکربندی تازه‌نوشته شما را بازتاب می‌دهد.

مقالات مرتبط