در این مقاله میخواهیم در مورد احراز هویت API ها صحبت کنیم.بیایید نحوه ی پیاده سازی کد Token Authorization را با استفاده از زمینه ی OWIN درچندین معماری API بیاموزیم.
در عصر جدید، به طور کلی از Web API ها استفاده میکنیم.
این Web API ها مختص منبع و بدون حالت هستند. در نتیجه، باید امنیت را جهت ایمن سازی API ها پیاده سازی کنیم.
در یک سناریوی دنیای واقعی، از یک معماری میکروسرویسی استفاده می کنیم.
بنابراین، بطور کلی میکروسرویس ها را بر اساس دامنه ی مشخص ایجاد می کنیم.
برای مثال میکروسرویسی به نام Authorization Service داریم. این مورد، نشانه ای برای API بر اساس نام کاربری و رمز عبور ایجاد خواهد کرد.
سرویس محتوا
این سرویس، محتوا را بر اساس کاربر یا فرآیند تصدیق نشان خواهد داد.
من کد تصدیق را در سرویس محتوا که بر روی سروری دیگر استقرار یافته است، نشان می دهم.
NuGet Package های زیر را برای پیاده سازی Owin Security نصب خواهیم کرد.
پکیج ها
Microsoft.owin.cors Microsoft.AspNet.Identity.Owin Microsoft.Owin.Security.OAuth Microsoft.Owin.Security Microsoft.Owin.Host.SystemWeb Owin Microsoft.Owin
پس از افزودن پکیج، کلاس StartUp را اضافه خواهیم کرد.
این کلاس نقطه ی ورودی درخواست می باشد.
درخواست در StartUp دریافت خواهد شد و سپس Middleware، و پس از آن نمونه ی کنترل کننده ایجاد می شود.
کلاس StartUp
Public class StartUp { Public Static OAuthAutherizationserverOptions oAuth { get; private set; } static startup() { OAuth = new OAuthAutherizationserverOptions { TokenEndPointPath = new PathString("/Token"), Provider = new OAuthProvider(), AccessTokenExpireTimeSpan = Timespan.FromMInutes(20), // Expiration time of the token AllowInsecureHttp = True // for local, On production please do it false } } Public void Configuration(IAppBuilder app) { app.UseOAuthBearerTokens(OAuth); // middleware code to authenticate the Bearer token. } }
کد زیر برای تصدیق زمینه بر اساس bearer token می باشد.
کد کلاس فراهم کننده
Public class X: OAuthAuthorizationServerProvider { public override Task ValidateClientAuth(OAuthValidateClientAuthenticationContext c) { if (context.ClientId == null) { c.Validated(); } return Task.FromResult < object > (null); } }
در این مثال، ما token را تولید نمی کنیم.
تنها به اعتبارسنجی نشانه در دیگر API ها می پردازیم.
از نشانه ای یکسان که توسط سرویس Authorization در سروری متفاوت تولید شده، استفاده می کنیم.
باید از کلید ماشین در web.config استفاده کنیم. بنابراین، هر دو سرور می توانند نشست را به اشتراک بگذارند.
هیچ دیدگاهی نوشته نشده است.