IdentityServer在Core环境下搭建服务器怎么让依赖framework环境下

如题,,,希望得到关于framwork环境下,OIDC的接入指导,真心求教。

现阶段场景:使用IdentityServer4在CORE服务器下搭建了服务端,现有.net环境下老的站点需要接入授权中心的单点登录【OIDC】,请问客户端没有AddOpenIdConnect方法配置的前提下这边应该怎样接入授权服务中心


慕田峪4524236
浏览 783回答 2
2回答

qq_我的梦想_4

我也遇到这样的问题了,在线等答案

繁花如伊

Idsv4是不关心客户端是谁的,我有一些想法,不知道是不是你需要的。首先在Core的IdentityServer4上自定义登录地址。services.AddIdentityServer(options&nbsp;=> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;忽略 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.UserInteraction.LoginUrl&nbsp;=&nbsp;Configuration["ApplicationDTO:LoginUrl"];&nbsp;//&nbsp;假设是/users/signIn &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options.UserInteraction.LogoutUrl&nbsp;=&nbsp;Configuration["ApplicationDTO:LogoutUrl"];&nbsp;/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})新建一个UsersControllers.添加signIn的Action.[HttpGet] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Authorize(AuthenticationSchemes&nbsp;=&nbsp;CookieAuthenticationDefaults.AuthenticationScheme)]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;async&nbsp;Task<IActionResult>&nbsp;SignIn(string&nbsp;returnUrl)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//通过验证后即清除cookies &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;await&nbsp;HttpContext.SignOutAsync("Cookies");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#region&nbsp;Issued&nbsp;Cookie &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List<Claim>&nbsp;source&nbsp;=&nbsp;new&nbsp;List<Claim>() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Claim("sub",new&nbsp;Guid().ToString()),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Claim("name",User.Identity.Name),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Claim("idp",&nbsp;"xxxxx"),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Claim("role","Custom"),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Claim("auth_time",&nbsp;DateTimeOffset.Now.ToEpochTime().ToString(),"http://www.w3.org/2001/XMLSchema#integer") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source.Add(new&nbsp;Claim("amr",&nbsp;"authorization_code"));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;identity&nbsp;=&nbsp;new&nbsp;ClaimsIdentity(source.Distinct<Claim>((IEqualityComparer<Claim>)new&nbsp;ClaimComparer()),&nbsp;"IdentityServer4",&nbsp;"name",&nbsp;"role");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;claimsPrincipal&nbsp;=&nbsp;new&nbsp;ClaimsPrincipal(identity);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;await&nbsp;HttpContext.SignInAsync(IdentityServerConstants.DefaultCookieAuthenticationScheme,&nbsp;claimsPrincipal,&nbsp;new&nbsp;AuthenticationProperties &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsPersistent&nbsp;=&nbsp;true, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExpiresUtc&nbsp;=&nbsp;DateTimeOffset.Now.Add(TimeSpan.FromMinutes(43200)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Redirect(returnUrl); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}Authorize需要您在startup自己定义登录地址。那么流程就是如下这样的1.在浏览器访问idsv4服务端https://Coreidsv4/connect/authorize?......,会跳转到/users/login通过Authorize验证用户是否登录,如果未登录就通过Authorization配置的登录地址去登录。登录成功重定向回来。可以在users/login中填写自己要信息。继续下去,通过url获取授权码&nbsp;code。然后再去拿code去换取token.注意参数填写正确。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server