我目前正忙于为多个应用程序实现SSO,因此我正在使用IdentityServer4进行身份验证。
在本地,一切正常,我的角度应用程序正在按需进行重定向和身份验证,并且一切都在本地正常进行。
对于我的Angular应用,我正在使用angular-oauth2-oidc。
但是..
我们的内部测试/ QA环境无法从外部访问,并且我们无法在该服务器上使用HTTPS,因此我现在尝试在没有HTTPS的情况下使用它(因此仅使用纯HTTP)。 在客户端,我将angular-oauth2-oidc设置requireHttps设置为false,因此初始重定向有效,但是,在我尝试登录的那一刻,它不会重定向回我的应用程序,并且我无法终生让它工作!
有人可以帮忙吗!
我知道我的RedirectUris和PostLogoutRedirectUris设置正确,因为如果我使用HTTPS,它就可以工作... 但似乎实际的登录部分是:
等待HttpContext.SignInAsync(userId,userName,props,claims);
可能会出现问题,因为如果我查看日志,则会看到以下内容:
IdentityServer4.Endpoints.AuthorizeCallbackEndpoint:Debug:开始 授权回调请求 IdentityServer4.Endpoints.AuthorizeCallbackEndpoint:Debug:没有用户 出现在授权请求中 IdentityServer4.Validation.AuthorizeRequestValidator:Debug:开始 授权请求协议验证 IdentityServer4.Stores.ValidatingClientStore:Debug:客户端 客户端openIdConnectClient的配置验证成功。 IdentityServer4.Validation.AuthorizeRequestValidator:Debug:正在调用 进入自定义验证器: IdentityServer4.Validation.DefaultCustomAuthorizeRequestValidator IdentityServer4.Endpoints.AuthorizeCallbackEndpoint:信息: ValidatedAuthorizeRequest {“ ClientId”:“ openIdConnectClient”,
“ ClientName”:“示例隐式客户端应用程序”,“ RedirectUri”: “ http://localhost:4200/signin-oidc”,“ AllowedRedirectUris”:[ “ {http://localhost:4200/signin-oidc”],“ SubjectId”:“匿名”,“ ResponseType”:“ id_token令牌”,“ ResponseMode”: “ fragment”,“ GrantType”:“隐式”,“ RequestedScopes”:“ openid 个人资料电子邮件用户名“电子邮件地址”,“状态”: “ xGKOyXoYjiYtX22q3rwXLTni0V9HlgKrarR0lRNd”,“ Nonce”: “ xGKOyXoYjiYtX22q3rwXLTni0V9HlgKrarR0lRNd”,“原始”:{ “ response_type”:“ id_token令牌”, “ client_id”:“ openIdConnectClient”, “ state”:“ xGKOyXoYjiYtX22q3rwXLTni0V9HlgKrarR0lRNd”, “ redirect_uri”:“ http://localhost:4200/signin-oidc”, “ scope”:“ openid个人资料电子邮件用户名EmailAddress”, “ nonce”:“ xGKOyXoYjiYtX22q3rwXLTni0V9HlgKrarR0lRNd”}} IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator:信息: 显示登录信息:用户未通过认证
我看到以下几行: 授权请求中没有用户
“ SubjectId”:“匿名”
显示登录名:用户未通过身份验证
即使找到用户,它仍然会这样做,所以我认为这可能是问题所在,但是我不知道如何解决它;(
提前谢谢!!!!