اخیراً، من چند مؤلفه مبتنی بر PowerShell را توسعه دادهام که به عنوان خزندههای داده برای منابع داده فدرال، مانند خدمات وب خارجی، پایگاههای داده سرور SQL، و کتابهای کاری اکسل و فهرستهای شیرپوینت عمل میکنند.
برای احراز هویت حسابهای سرویس در برابر همه این منابع، چارهای جز جاسازی نامهای کاربری و رمزهای عبور در کد PowerShell در متن ساده نداشتم. زمانی بدتر می شود که تعدادی از خدمات وب فقط از «تأیید هویت پایه» پشتیبانی کنند.
ذخیره گذرواژهها در متن ساده در فایلهای کد میتواند ما را به مشکلات انطباق سوق دهد و در نهایت راهحلها را رد کند. برای رفع این مشکل، من چند مکانیسم را برای مقابله با هر نوع الزامات احراز هویت پیادهسازی کردهام.
در این مقاله، مکانیسم احراز هویت درخواستها به فهرستهای شیرپوینت را مورد بحث قرار میدهم.
به منظور ساده کردن این نسخه نمایشی، اجازه دهید یک سناریوی ساده را در نظر بگیریم که در آن من یک لیست "MyLocations" را همانطور که در زیر نشان داده شده است دارم و باید ابرداده آن را با استفاده از یک مؤلفه مبتنی بر PowerShell صادر کنم.
برای واضح نگه داشتن محتوا، من شما را از طریق بخش خاصی از کد راهنمایی می کنم که تمام کدهای خاص CSOM را رد می کند که در صورت تمایل می توانید به مقالات قبلی من مراجعه کنید.
من عمداً این پیاده سازی را به دو فایل کد جداگانه تقسیم کرده ام تا پسوردها را از دست توسعه دهندگان در امان نگه دارم. هدف در اینجا این است که فایل Encryption تولید شده توسط SharePoint Admins را دریافت کرده و این فایل ها را در اختیار توسعه دهندگان قرار دهیم تا بتوانند مستقیماً مانند شکل زیر از آن در کد استفاده کنند.
در قطعه کد زیر، می توانید دستورات رمزگذاری رمز عبور "12345678" و صادرات آن را به یک فایل متنی "BANSALP.txt" مشاهده کنید.
این فایل مانند زیر خواهد بود.
به این ترتیب، میتوانید رمزهای عبور تمام حسابهای سرویس مورد نیاز را در فایلهای متنی مختلف بدون نقض قوانین امنیتی ذخیره کنید.
اکنون، برای اینکه این رمز عبور رمزگذاری شده را برای احراز هویت به شیرپوینت منتقل کنیم، میتوانیم مانند شکل زیر از کلاس «System.Management.Automation.PSCredential» استفاده کنیم.
در اینجا دستور «Get-Content» برای خواندن محتوا از فایل «BANSALP.txt» و دستور «ConvertTo-SecureString» برای دریافت رمز عبور رمزگذاری شده به عنوان یک رشته امن استفاده می شود.