اذهب إلى المحتوى
  • 0

هل يوجد احد لديه خبرة في ربط wso2 identity server مع core.net

Abdullah Almarhabi

السؤال

Recommended Posts

  • 0

ستحتاج إلى القيام بالخطوات التالية:

1- إعداد Identity Server

  • تثبيت WSO2 Identity Server على الخادم الخاص بك والتأكد من أنه يعمل بشكل صحيح.
  • قم بإنشاء تطبيق جديد في Identity Server. يمكنك القيام بذلك من خلال لوحة التحكم الخاصة ب Identity Server.

2- إعداد .NET Core

  • تثبيت .NET Core SDK على جهاز الكمبيوتر الخاص بك.
  • إنشاء مشروع .NET Core جديد باستخدام أي محرك قواعد بيانات تفضله، مثل Entity Framework.

3- ربط Identity Server و .NET Core

  • قم بإضافة مكتبة WSO2 Identity Server إلى مشروع .NET Core الخاص بك باستخدام مدير حزم NuGet.
  • إنشاء ملف تكوين جديد لـ Identity Server في مشروع .NET Core الخاص بك. يمكنك القيام بذلك باستخدام ملفات JSON أو YAML.
  • ثم إنشاء ملف Startup.cs في مشروع .NET Core الخاص بك وقم بتكوين خدمة الاعتماد الخاصة ب Identity Server.

ويمكنك استخدام الكود التالي:

public void ConfigureServices(IServiceCollection services)
{
    // Add authentication services
    services.AddAuthentication("Bearer")
        .AddJwtBearer("Bearer", options =>
        {
            options.Authority = "https://localhost:9443/oauth2/token";
            options.Audience = "myapp";
        });

    // Add framework services
    services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseAuthentication();
    app.UseMvc();
}

حيث تم استخدام AddJwtBearer لإضافة دعم JWT إلى .NET Core، وتكوين خياراته لاستخدام Authority و Audience الخاصة ب Identity Server.

بعد الانتهاء من الخطوات المذكورة أعلاه، باستطاعتك اختبار الاتصال بين Identity Server و .NET Core عن طريق إنشاء نموذج بسيط في .NET Core وإضافة تسجيل دخول وتسجيل خروج باستخدام الأمر HttpContext.SignInAsync و HttpContext.SignOutAsync.

وبإمكانك استخدام الكود التالي كقالب لنموذجك:

public class AccountController : Controller
{
    public async Task<IActionResult> Login(string returnUrl = "/")
    {
        var result = await HttpContext.AuthenticateAsync("Bearer");
        if (result.Succeeded)
        {
            return LocalRedirect(returnUrl);
        }
        else if (result.Failure != null)
        {
            ModelState.AddModelError("", "Failed to authenticate");
        }

        return View();
    }

    public async Task<IActionResult> Logout()
    {
        await HttpContext.SignOutAsync("Bearer");
        return RedirectToAction(nameof(HomeController.Index), "Home");
    }
}

تم استخدام HttpContext.AuthenticateAsync لتسجيل دخول المستخدم باستخدام خدمة الاعتماد الخاصة ب Identity Server، واستخدمت HttpContext.SignOutAsync لتسجيل خروج المستخدم.

وتحديد اسم الخدمة (Bearer) الذي تم استخدامه في ConfigureServices في Startup.cs في الأمر HttpContext.AuthenticateAsync و HttpContext.SignOutAsync.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...