اخبار، مطالب و رویدادهای مرتبط با توسعه نرم افزار رادکام

ایمن سازی برنامه ها با استفاده از احراز هویت بر مبنای توکن - بخش ششم - پیکربندی کاربران (Users) و سرویس گیرنده ها (Clients)

پیکربندی کاربران (Users) و سرویس گیرنده ها (Clients)

حال که منابع را پیکربندی کردیم، به سراغ پیکربندی کاربران و سرویس گیرنده ها می رویم. کلاس پیکربندی یا همان config.cs را باز کنید، در انتهای کلاس می خواهیم یک متد استاتیک اضافه کنیم. IdentityServer باید سرویس گیرنده هایی (مشتریان)  را که مجاز به استفاده از آن هستند را بشناسد. یک متد به نام GetClients اضافه می کنیم که یک مجموعه از سرویس گیرنده ها بر می گرداند. اینجاست که ما سرویس گیرنده MVC خودمان را پیکربندی می نماییم. ابتدا به آن یک شناسه مشتری منحصر به فرد اضافه می کنیم.  و نام آن را  RouxAcademyMVC قرار می دهیم و سپس یک نام سرویس گیرنده برای آن مشخص می کنیم که اینجا آن را برابر با "Roux Academy MVC Client" قرار می دهیم. در مرحله بعدی نوع دسترسی مجاز (Allowed Grant Type) را تعریف می کنیم. این نوع دسترسی نحوه تعامل سرویس گیرنده با IdentityServer را مشخص می کند. می خواهیم از نوع Implicit استفاده نماییم. نوع Implicit برای هر دو درخواست های توکن تایید اعتبار و توکن دسترسی استفاده می شود. این گزینه توکن را از طریق مرورگر عبور می دهد. و همچنین از برنامه های سمت سرور و Javascript پشتیبانی می کند.
در مرحله بعد URI های هدایت کننده(Redirect URIs) را پیکربندی می کنیم. این تنظیمات برای آن است که کاربر بعد از ورود به سیستم به صفحه مربوطه هدایت شود. ما از آدرس Localhost با پورت 5002 ("http://localhost:5002/signin-oidc") برای تنظیم RedirectUris استفاده خواهیم کرد. سپس PostLogoutRedirectUris را تنظیم می کنیم، این تنظیمات برای هدایت کردن کاربر بعد از خروج از سیستم استفاده می شود. ما از همان آدرس localhost اینجا نیز استفاده می کنیم، تنها عبارت انتهایی آدرس قبلی تغییر می یابد، آدرس مربوطه "http://localhost:5002/signout-callback-oidc" خواهد بود. AllowedScopes فهرست منابع(resource) و حوزه هایی(scope) را شامل می شود که کاربر می تواند درخواست کند.  می توانیم با استفاده از کلید IdentityServerConstants به اینها دسترسی داشته باشیم. برای استفاده از این امکان باید استفاده از IdentityServer4 را با استفاده از using در بالای کلاس خود قرار دهیم. و سپس حوزه های استاندارد مورد نظر خود را اضافه می کنیم که ابتدا حوزه OpenId را انتخاب می کنیم، . سپس به برنامه Client مبتنی بر MVC که نوشته ایم  اجازه می دهیم که به حوزه های تعریف شده ما مانند Profile و Email دسترسی پیدا کند. با این کار پیکربندی  مخزن client ها تکمیل می گردد.

public static IEnumerable GetClients()
        {
            return new List
            {
                new Client
                {
                    ClientId = "RouxAcademyMVC",
                    ClientName = "Roux Academy MVC Client",
                    AllowedGrantTypes = { GrantType.Implicit },
                    RedirectUris = {"http://localhost:5002/signin-oidc"},
                    PostLogoutRedirectUris = {"http://localhost:5002/signout-callback-oidc"},
                    AllowedScopes = new List
                    {
                        IdentityServerConstants.StandardScopes.OpenId,
                        IdentityServerConstants.StandardScopes.Profile,
                        IdentityServerConstants.StandardScopes.Email
                    }
                }
            };
        }

سپس مخزن کاربران خود را تنظیم خواهیم کرد.

برای مخزن کاربران درون حافظه، برنامه ما یک کلاس TestUser در پوشه Quickstart دارد. همانطور که می بینید دو کاربر به نام های Alice و Bob از قبل تعریف شده است. و هر کدام از آنها نیز دارای مجموعه ای از claim ها هستند که خود claim ها هم شامل زوج نام/مقدار می باشند. حال وقت آن رسیده که پیکربندی IdentityServer را در کلاس Startup بروزرسانی کنیم تا مخزن های درون حافظه ای ایجاد شده را  به آن اضافه کنیم. به سراغ متد ConfigureServices بروید. در ادامه متدی که IdentityServer را اضافه کرده ایم، پیکربندی مربوط به IdentityServer را ویرایش می کنیم. ابتدا منابع درون حافظه ای را از فایل Config برنامه مان اضافه می کنیم. سپس سرویس گیرنده(clients) هایی که پیکربندی کرده ایم را اضافه خواهیم کرد. این سرویس گیرنده ها را هم از کلاس Config بدست می آوریم. و در انتها با استفاده از کلاس TestUsers کاربران آزمایشی خود را اضافه می کنیم. برای این کار باید فضای نام IdentityServer4.Quickstart.UI را بالای صفحه اضافه کنیم. حال تنظیمات سرویس توکن ما تکمیل شده است. بنابراین متد ConfigureServices ما به این شکل تبدیل خواهد گردید.

public void ConfigureServices(IServiceCollection services)
{
    services.AddIdentityServer()
        .AddDeveloperSigningCredential()
        .AddInMemoryIdentityResources(Config.GetIdentityResources())
        .AddInMemoryClients(Config.GetClients())
        .AddTestUsers(TestUsers.Users);

    services.AddMvc();
}

کارهایی که انجام دادیم به ما این امکان را می دهد که تایید هویت مبتنی بر توکن را به برنامه خودمان اضافه کنیم.


منبع:

Lynda.com - ASP.NET.Core.Security


نام را وارد کنید
تعداد کاراکتر باقیمانده: 1000
نظر خود را وارد کنید