public IActionResult AddOpenIDConfig(OIDConfig cfg, string tenantId) { var tenant = _repo.GetTenantById(tenantId); if (tenant.Protocol.Equals("oidc")) { var oidConfig = new OpenIDConfig { Authority = cfg.DirectoryId == null ? cfg.Authority : $"{cfg.Authority}/{cfg.DirectoryId}/", ClientId = cfg.ClientId, ClientSecret = cfg.ClientSecret ?? "", Tenant = tenant, }; _repo.AddOIDConfig(oidConfig); } return(Ok()); }
private OpenIdConnectOptions BuildOidOptions(OpenIDConfig config) { return(new OpenIdConnectOptions { SignInScheme = "idsrv.external", SignOutScheme = "idsrv", RequireHttpsMetadata = false, Authority = config.Authority, ClientId = config.ClientId, ClientSecret = config.ClientSecret ?? "", TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, NameClaimType = JwtClaimTypes.Subject, RoleClaimType = JwtClaimTypes.Role, }, SaveTokens = true, CallbackPath = $"/signin-oidc-{config.TenantId}" }); }
/// <summary> /// Adds openidconfig in DB, needed for dynamic setup of oid schemes /// </summary> /// <param name="cfg"></param> public void AddOIDConfig(OpenIDConfig cfg) { _dbContext.Add(cfg); _dbContext.SaveChanges(); }