در این مقاله نحوه اتصال برنامه جهانی Windows Platform (UWP) خود به یک ارائه دهنده هویت آنلاین که از پروتکل های احراز هویت مانند OpenID یا OAuth استفاده می کند ، مانند فیس بوک ، توییتر ، فلیکر ، اینستاگرام و غیره توضیح می دهد. روش AuthenticAteAsync درخواستی را به ارائه دهنده هویت آنلاین ارسال می کند و به یک نشانه دسترسی باز می گردد که منابع ارائه دهنده ای را که برنامه به آن دسترسی دارد توصیف می کند.
برای یک نمونه کد کامل و کار ، repo webauthenticationbroker را در GitHub کلون کنید.
برنامه خود را با ارائه دهنده آنلاین خود ثبت کنید
شما باید برنامه خود را با ارائه دهنده هویت آنلاین که می خواهید به آن وصل شوید ، ثبت کنید. می توانید نحوه ثبت برنامه خود را از ارائه دهنده هویت پیدا کنید. پس از ثبت نام ، ارائه دهنده آنلاین به طور معمول یک شناسه یا کلید مخفی برای برنامه خود به شما می دهد.
درخواست تأیید اعتبار URI را بسازید
درخواست URI شامل آدرس است که در آن درخواست تأیید اعتبار را به ارائه دهنده آنلاین خود با سایر اطلاعات مورد نیاز ، مانند شناسه برنامه یا راز ارسال می کنید ، URI تغییر مسیر که در آن کاربر پس از تکمیل احراز هویت و نوع پاسخ مورد انتظار ارسال می شود ، ارسال می کنید. می توانید از ارائه دهنده خود مطلع شوید که چه پارامترهایی لازم است.
درخواست URI به عنوان پارامتر Requesturi از روش AuthenticateAsync ارسال می شود. این باید یک آدرس امن باشد (باید با https شروع شود: //)
مثال زیر نحوه ساخت URI درخواست را نشان می دهد.
به ارائه دهنده آنلاین متصل شوید
شما برای اتصال به ارائه دهنده هویت آنلاین و دریافت یک نشانه دسترسی ، با روش AuthenticAteAsync تماس می گیرید. این روش URI ساخته شده در مرحله قبل را به عنوان پارامتر RequestURI و URI که می خواهید کاربر به عنوان پارامتر Callbackuri هدایت شود ، ساخته شده است.
علاوه بر AuthenticAteAsync ، Windows. Security. Authentication. Web Namespace شامل یک روش تأیید اعتبار است. این روش را صدا نکنید. این برنامه برای برنامه هایی که ویندوز فون 8. 1 را هدف قرار داده اند طراحی شده است و از طریق ویندوز 10 مستهلک می شود.
اتصال با یک ورود به سیستم (SSO).
به طور پیش فرض، کارگزار احراز هویت وب اجازه نمی دهد کوکی ها باقی بمانند. به همین دلیل، حتی اگر کاربر برنامه نشان دهد که می خواهد وارد سیستم شود (به عنوان مثال، با انتخاب یک کادر در کادر گفتگوی ورود ارائه دهنده)، باید هر بار که می خواهد به منابع آن ارائه دهنده دسترسی پیدا کند، وارد سیستم شود. برای ورود با SSO، ارائه دهنده هویت آنلاین شما باید SSO را برای واسطه احراز هویت وب فعال کرده باشد، و برنامه شما باید بار اضافی AuthenticateAsync را که پارامتر callbackUri را دریافت نمی کند، فراخوانی کند. این اجازه می دهد کوکی های باقی مانده توسط کارگزار احراز هویت وب ذخیره شوند، به طوری که تماس های احراز هویت آینده توسط همان برنامه نیازی به ورود مکرر توسط کاربر نداشته باشد (کاربر عملاً تا زمانی که رمز دسترسی منقضی شود "ورود به سیستم" شده است).
برای پشتیبانی از SSO، ارائه دهنده آنلاین باید به شما اجازه دهد یک URI تغییر مسیر را در فرم ms-app:// ثبت کنید، جایی که SID برنامه شما است. می توانید SID برنامه خود را از صفحه توسعه دهنده برنامه برای برنامه خود یا با فراخوانی روش GetCurrentApplicationCallbackUri پیدا کنید.
اشکال زدایی
راه های مختلفی برای عیب یابی APIهای واسطه های احراز هویت وب وجود دارد، از جمله بررسی گزارش های عملیاتی و بررسی درخواست ها و پاسخ های وب با استفاده از Fiddler.
گزارش های عملیاتی
اغلب می توانید با استفاده از گزارش های عملیاتی تعیین کنید چه چیزی کار نمی کند. یک کانال ثبت رویداد اختصاصی Microsoft-Windows-WebAuthOperational وجود دارد که به توسعه دهندگان وب سایت اجازه می دهد تا درک کنند که چگونه صفحات وب آنها توسط کارگزار تأیید اعتبار وب پردازش می شود. برای فعال کردن آن، eventvwr. exe را اجرا کنید و عملیات Log را در Application and ServicesMicrosoftWindowsWebAuth فعال کنید. همچنین، کارگزار احراز هویت وب یک رشته منحصر به فرد به رشته عامل کاربر اضافه می کند تا خود را در وب سرور شناسایی کند. رشته "MSAuthHost/1. 0" است. توجه داشته باشید که شماره نسخه ممکن است در آینده تغییر کند، بنابراین نباید در کد خود به آن شماره نسخه وابسته باشید. نمونه ای از رشته کامل عامل کاربر، به دنبال مراحل رفع اشکال کامل، به شرح زیر است.
عامل کاربر: Mozilla/5. 0 (سازگار؛ MSIE 10. 0؛ Windows NT 6. 2؛ Win64؛ x64؛ Trident/6. 0؛ MSAuthHost/1. 0)
- گزارش های عملیاتی را فعال کنید.
- برنامه اجتماعی Contoso را اجرا کنید.
- ورودی های گزارش های تولید شده را می توان برای درک رفتار کارگزار احراز هویت وب با جزئیات بیشتر مورد استفاده قرار داد. در این مورد، این موارد می تواند شامل موارد زیر باشد:
- Navigation Start: زمانی که AuthHost راه اندازی می شود ثبت می شود و حاوی اطلاعاتی در مورد URL های شروع و پایان است.
-
- Navigation Complete: اتمام بارگیری یک صفحه وب را ثبت می کند.
- متا تگ: هنگامی که با یک متا تگ مواجه می شوید شامل جزئیات ثبت می شود.
- Navigation Terminate: ناوبری که توسط کاربر خاتمه می یابد.
- خطای ناوبری: AuthHost با یک خطای ناوبری در یک URL از جمله HttpStatusCode مواجه می شود.
- پایان ناوبری: با URL پایانی مواجه می شود.
کمانچه نواز
اشکال زدای وب Fiddler را می توان با برنامه ها استفاده کرد. برای اطلاعات بیشتر، به مستندات Fiddler مراجعه کنید
از آنجایی که AuthHost در کانتینر برنامه خود اجرا می شود، برای اینکه قابلیت شبکه خصوصی را به آن بدهید، باید یک کلید رجیستری تنظیم کنید: ویرایشگر رجیستری ویندوز نسخه 5. 00
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Image File Execution Options authhost. exe EnablePrivateNetwork = 00000001
اگر این کلید رجیستری را ندارید، می توانید آن را در Command Prompt با امتیازات مدیر ایجاد کنید.
یک قانون برای AuthHost اضافه کنید زیرا این همان چیزی است که ترافیک خروجی را ایجاد می کند.
استراتژی ترید...
ما را در سایت استراتژی ترید دنبال می کنید
برچسب :
نویسنده : مرجان شیرمحمدی
بازدید : 47
تاريخ : سه
شنبه
15 فروردين
1402 ساعت: 20:41