【问题标题】:how to work out endpoints in a client authorization app, okta, oidc .net如何在客户端授权应用程序、okta、oidc .net 中计算端点
【发布时间】:2021-08-20 16:24:25
【问题描述】:

玩了 oidc 身份验证后更好地理解它。我知道我在哪里失败了,我没有正确设置端点。所以我已经下载了一些代码并玩了一下。

我想要做的是更改登录和注销的重定向网址。此代码旨在允许我通过外部服务器(okta)进行连接: 在启动时:

public void ConfigureServices(IServiceCollection services)
        {
            services.ConfigureApplicationCookie(options =>
            {
                options.Cookie.HttpOnly = true;
                options.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.Always;
            })
            .AddAuthentication(options =>
            {
                options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
            })
           .AddCookie()
           .AddOktaMvc(new OktaMvcOptions
           {
                // Replace these values with your Okta configuration
               OktaDomain = Configuration.GetValue<string>("Okta:OktaDomain"),
               AuthorizationServerId = Configuration.GetValue<string>("Okta:AuthorizationServerId"),
               ClientId = Configuration.GetValue<string>("Okta:ClientId"),
               ClientSecret = Configuration.GetValue<string>("Okta:ClientSecret"),
               Scope = new List<string> { "openid", "profile", "email" },
           });

            services.AddControllersWithViews();
        }


public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                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.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }

在自述文件中,它指定为了使其正常工作,我必须更新我已经完成的 okta 上的端点,将它们设置为 .../authorization-code/callback for login 和 . ./signout/callback 用于注销。

于是我看了一下code,authorization-code不是controller,也不是signout。

这是我的家庭控制器:

public class AccountController : Controller
    {
        public IActionResult SignIn()
        {
            if (!HttpContext.User.Identity.IsAuthenticated)
            {
                return Challenge(OktaDefaults.MvcAuthenticationScheme);
            }

            return RedirectToAction("Index", "Home");
        }

        [HttpPost]
        public IActionResult SignOut()
        {
            return new SignOutResult(
                new[]
                {
                     OktaDefaults.MvcAuthenticationScheme,
                     CookieAuthenticationDefaults.AuthenticationScheme,
                },
                new AuthenticationProperties { RedirectUri = "/Home/" });
        }

那么,有人可以解释一下我的端点吗?我没有看到回调或授权码,但我看到了注销,但没有看到回调?

【问题讨论】:

    标签: openid-connect endpoint okta


    【解决方案1】:

    终于找到了!!!

    问题是它是默认设置的,在下载的nuget包中,有一个类可以根据截图设置默认值:

    然后要改变这个,我只需要改变这个的值,或者设置一个不同的值。感谢大家的阅读,希望对大家有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 2018-06-08
      • 2017-08-13
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多