avatar
Ali abdollahi

کاربر

  • 1402/10/12
  • 0
  • 64
1402/10/12 |
backend
asp
asp-net-core
dot-net

Identity Server4

ستاد سلام خسته نباشید...

من تو فصل Identity Server4  قسمت کلاینت ها گیر کردم.

همه چیز رو طبق آموزش جلو رفتم اما من ارور دارم:

موقعی که میخوام به اکشنی که در پروژه کلاینت [Authoriz] داره  متصل بشم و قرار با اون پروژه که IDP هست وارد بشم ارور unauthorized_client رو میگیرم.

کد program.cs پروژه IDP:

builder.Services.AddIdentityServer()
    .AddDeveloperSigningCredential()
    .AddTestUsers(new List<TestUser>()
    {
        new TestUser
        {
            SubjectId = "1",
            Username = "Test",
            IsActive = true,
            Password = "123",
            Claims = new List<Claim>
            {
                new Claim(ClaimTypes.Email, "Test@gmail.com"),
                new Claim(ClaimTypes.MobilePhone, "09125555555"),
                new Claim("FullName", "Test Test")
            }
        }
    })
    .AddInMemoryIdentityResources(new List<IdentityResource>
    {
        new IdentityResources.OpenId(),
        new IdentityResources.Email(),
        new IdentityResources.Phone(),
        new IdentityResources.Profile(),
        new IdentityResources.Address(),
    })
    .AddInMemoryClients(new List<Client>()
    {
        new Client
        {
            ClientId = "testclientid",
            ClientSecrets = new List<Secret> { new Secret("12345678".Sha256())},
            AllowedGrantTypes = GrantTypes.Implicit,
            RedirectUris = { "https://localhost:44397/signin-oidc" },
            PostLogoutRedirectUris = { "https://localhost:44397/signout-callback-oidc" },
            AllowedScopes = new List<string>
            {
                StandardScopes.OpenId,
                StandardScopes.Profile,
                StandardScopes.Email,
            }
        }
    });

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseIdentityServer();
app.UseAuthentication();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

و اینم کده program.cs پروژه کلاینتی که قراره از IDP  استفاده کنه:

builder.Services.AddAuthentication(option =>
{
    option.DefaultScheme = "Cookies";
    option.DefaultChallengeScheme = "oidc";
}).AddCookie("Cookies")
.AddOpenIdConnect("oidc", option =>
{
    option.Authority = "https://localhost:44342/";
    option.ClientId = "testclientid";
    option.GetClaimsFromUserInfoEndpoint = true;
    option.SignInScheme = "Cookies";
});

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

هرچی گشت پیدا نکردم,, مشکل کجاست؟؟ ممنون میشم راهنمایی کنید! :*)


 سلام
 از پیغام خطای unauthorized_client مشخص است که مشکلی در تنظیمات کلاینت Identity Server وجود دارد. برای رفع این مشکل، موارد زیر را بررسی کنید:

تطابق ClientId: اطمینان حاصل کنید که ClientId تعریف شده در پروژه کلاینت با ClientId تعریف شده در تنظیمات Identity Server دقیقاً یکسان است.

Client Secrets: بررسی کنید که رمز عبور کلاینت (ClientSecrets) در هر دو پروژه مطابقت داشته باشد و به درستی تعریف شده باشد.

Redirect URIs: مطمئن شوید که RedirectUris در تنظیمات کلاینت با آدرسی که کاربر پس از احراز هویت به آن هدایت می‌شود، مطابقت دارد.

Allowed Grant Types: بررسی کنید که AllowedGrantTypes در Identity Server متناسب با نوع جریان احراز هویتی که در کلاینت استفاده می‌کنید باشد. برای مثال، اگر از Authorization Code Flow استفاده می‌کنید، نباید Implicit را به عنوان AllowedGrantTypes تنظیم کرده باشید.

اگر پس از بررسی این موارد همچنان مشکل برطرف نشد، ممکن است نیاز به بررسی دقیق‌تر تنظیمات داشته باشید.

موفق باشید.

 


  • 1402/10/30

سلام عرض خسته نباشید، 

ممنونم از تیم باگتو. 🌹... 



پاسخی برای این باگ ارسال کنید

لطفا کدها را درون قطعه کد ارسال نمایید

برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری