OAuth2 连接授予类型“Authorization_code”

问题描述 投票:0回答:1

我需要使用授权代码连接到我的 Identity Server 4。我已经使用隐式授权类型成功连接,但找不到授权代码的任何显式文档。

我的项目是在 ASP.NET Core 8 MVC 中。

这是我的Program.cs:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllersWithViews();
builder.Services.AddAuthentication(options =>
    {
        options.DefaultScheme = "Cookies";
        options.DefaultChallengeScheme = "oidc";
    }).AddCookie("Cookies")
    .AddOpenIdConnect("oidc", options =>
    {
        options.SignInScheme = "Cookies";
        options.Authority = "https://test.identity.com/";
        options.RequireHttpsMetadata = false;
        options.ClientId = "test_auth";
        options.ClientSecret = "secret";
        options.SaveTokens = true;
        options.CallbackPath = "/signin-oidc";
    });
var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

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

app.Run();

那么,我有两个问题。是否可以使用“Authorization_code”进行连接?

第二个问题:我看过很多文档,其中配置位于 Startup.ConfigureServices 文件中。我是否需要创建它,或者它已经存在于 .NET Core 8 中?

我尝试了很多 NuGet 包,但没有一个能很好地工作。

我的身份服务器出现错误:

Error image

Logs

但是,设置回调路径并不能解决问题。

c# .net oauth asp.net-core-mvc
1个回答
0
投票

问题源于我的身份服务器中的重定向 URI 属性,需要进行如下设置:

Database RedirectUri

对于 openIdConnect 配置,如下所示:

builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = "Cookies";
    options.DefaultChallengeScheme = "oidc";
}).AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
    options.Authority = "https://test.identityserver.com/";
    options.RequireHttpsMetadata = false;
    options.ClientId = "test_auth";
    options.ClientSecret = "secret";
    options.SaveTokens = true;
    options.ResponseType = "code";
    options.Scope.Add("openid");
    options.Scope.Add("email");
    options.Scope.Add("profile");
    options.CallbackPath = "/signin-oidc";
});
© www.soinside.com 2019 - 2024. All rights reserved.