- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我按照 Identity Server 4 文档在我的本地机器上设置了一个示例服务器。
我的问题是,在我登录后,应用程序卡在“signin-oidc”页面上,日志显示 404。我按照说明进行了 T,甚至删除了所有内容并重新开始。因此,当前设置是一个准系统 IdSvr4 项目 (is4inmem) 和一个新的 ASPNetCore MVC 应用程序,根据 http://docs.identityserver.io/en/latest/quickstarts/2_interactive_aspnetcore.html 上的文档。
我所做的唯一更改是将所有 URL 更改为 HTTPs 并使用 appsettings.json 文件而不是 Config
类(class)。因为我没有改变任何实质性的东西,所以我无能为力。
我的 MVC 的日志看起来像这样
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/2 GET https://localhost:44377/Home/Claims
info: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]
Authorization failed.
info: Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler[12]
AuthenticationScheme: oidc was challenged.
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 559.8895ms 200 text/html;charset=UTF-8
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/2 POST https://localhost:44377/signin-oidc application/x-www-form-urlencoded 547
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 3.2205ms 404
[00:26:01 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Start authorize request protocol validation
[00:26:01 Debug] IdentityServer4.Stores.ValidatingClientStore
client configuration validation for client mvc succeeded.
[00:26:01 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Checking for PKCE parameters
[00:26:01 Debug] IdentityServer4.Validation.AuthorizeRequestValidator
Calling into custom validator: IdentityServer4.Validation.DefaultCustomAuthorizeRequestValidator
[00:26:01 Debug] IdentityServer4.Endpoints.AuthorizeCallbackEndpoint
ValidatedAuthorizeRequest
{"ClientId": "mvc", "ClientName": "MVC Client", "RedirectUri": "https://localhost:44377/signin-oidc", "AllowedRedirectUris": ["https://localhost:44377/signin-oidc"], "SubjectId": "88421113", "ResponseType": "code", "ResponseMode": "form_post", "GrantType": "authorization_code", "RequestedScopes": "openid profile", "State": "CfDJ8Pdtr1YS18ZOp7dIVYqa05dMp_XQH4T-n8WcLhu5aBGOHMMP_JTWt2I4pM0JjtxMBddtz5WSWy-rkrZTqXLwr-BllETJJds86UiTcvUvxfQ7cCvVoM5I-gofWE-LrKJlrdDnhC4ofF4MGMfNAdYvVmT7J9fCEWJzuAspiyK8KBXGWiCZhw77isVR1q3hu7s3cKCvcuNKMi2jww_tjdOi8IYdZ8vTTlmA6tL8NpWDZaY1J6mj1WUzess9FQ2Bc2maeSYy4NBKCfPIITLq4aiHmCVb97itGJsIbImHQm2cTo43B_m7rYIPq-RHtGAgXU6l81mIMwmxjhJhsfhH28KExQitCgPNewh9ltpLgumr4Zm49TuUMubYy6L6sYM7jzeekA", "UiLocales": null, "Nonce": "637086795594073564.YWI5YWMzMTgtZjU0Ni00YjI5LTg1ZTMtOGViN2JjYjgwY2YxYzAxZTY2YzQtMjg2Yy00YjkyLWE0ZGYtODYzNDA1NWIwYWY5", "AuthenticationContextReferenceClasses": null, "DisplayMode": null, "PromptMode": null, "MaxAge": null, "LoginHint": null, "SessionId": "k6AJ_-EdagzerxIIl6oQmA", "Raw": {"client_id": "mvc", "redirect_uri": "https://localhost:44377/signin-oidc", "response_type": "code", "scope": "openid profile", "code_challenge": "sHPH6r59Ij8Iap6esr_3opZrue72ZdOVxBg-20IQMs4", "code_challenge_method": "S256", "response_mode": "form_post", "nonce": "637086795594073564.YWI5YWMzMTgtZjU0Ni00YjI5LTg1ZTMtOGViN2JjYjgwY2YxYzAxZTY2YzQtMjg2Yy00YjkyLWE0ZGYtODYzNDA1NWIwYWY5", "state": "CfDJ8Pdtr1YS18ZOp7dIVYqa05dMp_XQH4T-n8WcLhu5aBGOHMMP_JTWt2I4pM0JjtxMBddtz5WSWy-rkrZTqXLwr-BllETJJds86UiTcvUvxfQ7cCvVoM5I-gofWE-LrKJlrdDnhC4ofF4MGMfNAdYvVmT7J9fCEWJzuAspiyK8KBXGWiCZhw77isVR1q3hu7s3cKCvcuNKMi2jww_tjdOi8IYdZ8vTTlmA6tL8NpWDZaY1J6mj1WUzess9FQ2Bc2maeSYy4NBKCfPIITLq4aiHmCVb97itGJsIbImHQm2cTo43B_m7rYIPq-RHtGAgXU6l81mIMwmxjhJhsfhH28KExQitCgPNewh9ltpLgumr4Zm49TuUMubYy6L6sYM7jzeekA"}, "$type": "AuthorizeRequestValidationLog"}
[00:26:01 Debug] IdentityServer4.Test.TestUserProfileService
IsActive called from: AuthorizeEndpoint
[00:26:01 Debug] IdentityServer4.Stores.DefaultUserConsentStore
user_consent grant with value: mvc|88421113 not found in store.
[00:26:01 Debug] IdentityServer4.Services.DefaultConsentService
Found no prior consent from consent store, consent is required
[00:26:01 Information] IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator
User consented to scopes: ["openid", "profile"]
[00:26:01 Debug] IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator
User indicated to remember consent for scopes: ["openid", "profile"]
[00:26:01 Debug] IdentityServer4.Services.DefaultConsentService
Client allows remembering consent, and consent given. Updating consent store for subject: 88421113
[00:26:01 Debug] IdentityServer4.ResponseHandling.AuthorizeResponseGenerator
Creating Authorization Code Flow response.
[00:26:01 Information] IdentityServer4.Events.DefaultEventService
{"ClientId": "mvc", "ClientName": "MVC Client", "RedirectUri": "https://localhost:44377/signin-oidc", "Endpoint": "Authorize", "SubjectId": "88421113", "Scopes": "openid profile", "GrantType": "authorization_code", "Tokens": [{"TokenType": "code", "TokenValue": "****MUrA", "$type": "Token"}], "Category": "Token", "Name": "Token Issued Success", "EventType": "Success", "Id": 2000, "Message": null, "ActivityId": "0HLR322N3G5DT:00000017", "TimeStamp": "2019-11-06T23:26:01.0000000Z", "ProcessId": 3312, "LocalIpAddress": "::1:44374", "RemoteIpAddress": "::1", "$type": "TokenIssuedSuccessEvent"}
[00:26:01 Debug] IdentityServer4.Endpoints.AuthorizeCallbackEndpoint
Authorize endpoint response
{"SubjectId": "88421113", "ClientId": "mvc", "RedirectUri": "https://localhost:44377/signin-oidc", "State": "CfDJ8Pdtr1YS18ZOp7dIVYqa05dMp_XQH4T-n8WcLhu5aBGOHMMP_JTWt2I4pM0JjtxMBddtz5WSWy-rkrZTqXLwr-BllETJJds86UiTcvUvxfQ7cCvVoM5I-gofWE-LrKJlrdDnhC4ofF4MGMfNAdYvVmT7J9fCEWJzuAspiyK8KBXGWiCZhw77isVR1q3hu7s3cKCvcuNKMi2jww_tjdOi8IYdZ8vTTlmA6tL8NpWDZaY1J6mj1WUzess9FQ2Bc2maeSYy4NBKCfPIITLq4aiHmCVb97itGJsIbImHQm2cTo43B_m7rYIPq-RHtGAgXU6l81mIMwmxjhJhsfhH28KExQitCgPNewh9ltpLgumr4Zm49TuUMubYy6L6sYM7jzeekA", "Scope": "openid profile", "Error": null, "ErrorDescription": null, "$type": "AuthorizeResponseLog"}
{
"ClientId": "mvc",
"ClientName": "MVC Client",
// 49C1A7E1-0C79-4A89-A3D6-A37998FB86B0
"ClientSecrets": [ { "Value": "o90IbCACXKUkunXoa18cODcLKnQTbjOo5ihEw9j58+8=" } ],
"AllowedGrantTypes": [ "client_credentials", "authorization_code" ],
"RequirePkce": true,
"AllowedScopes": [ "openid", "profile", "api1" ],
"AllowOfflineAccess": true,
"RedirectUris": [ "https://localhost:44377/signin-oidc" ],
"FrontChannelLogoutUris": [ "https://localhost:44377/signout-oidc" ],
"PostLogoutRedirectUris": [ "https://localhost:44377/signout-callback-oidc" ]
},
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
JwtSecurityTokenHandler.DefaultMapInboundClaims = false;
services.AddAuthentication(opt =>
{
opt.DefaultScheme = "Cookies";
opt.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", opt =>
{
opt.Authority = "https://localhost:44374";
opt.RequireHttpsMetadata = true;
opt.ClientId = Configuration["OIDC:ClientId"];
opt.ClientSecret = Configuration["OIDC:Secret"];
opt.ResponseType = "code";
opt.SaveTokens = true;
opt.AuthenticationMethod = OpenIdConnectRedirectBehavior.FormPost;
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
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.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints
.MapDefaultControllerRoute()
.RequireAuthorization();
});
}
最佳答案
你好像忘了给 UseAuthentication()
添加一个电话在您的 Startup.Configure
方法。这个中间件是使回调能够例如/signin-oidc
由您的客户端应用程序处理:
app.UseRouting();
app.UseAuthentication(); // <-- Add it here.
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints
.MapDefaultControllerRoute()
.RequireAuthorization();
});
And then to ensure the authentication services execute on each request, add
UseAuthentication
toConfigure
inStartup
:
关于c# - 登录后身份服务器 404(卡在 signin-oidc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58739915/
正在复制的问题是,当sew呈现登录页面时,然后我们继续执行身份验证,现在将我们重定向到网站的仪表板,此时我们继续关闭会话,并且在之前的交互中生成的这些cookie没有被删除。这个问题是重复性的,并且一
我遇到了与这篇文章中相同的错误。 flask-oidc-client-exchange-error 虽然我想要一个解决该问题的答案,但我认为主要问题是没有维护 flask-oidc 库,并且它使用已弃
我正在使用带有 angular 7 的 oidc-client,并且我想启用日志记录。该文档建议我可以执行以下操作 Oidc.Log.logger = console; 我无法完成这项工作,因为 Oi
我在安装 go 时遇到了 k8s-oidc-helper 包的问题。但是,当我用它运行任何命令时,它会给出命令未找到错误。我在 ubuntu 16.04 VM 上运行它。我该如何解决这个问题? 最佳答
我正在编写一个react+flux应用程序,并且我已经将IdentityServer设置为OpenID Connect提供程序。 IdentityServer 人员提供了两个库,使处理客户端变得更加容
当我在 docker compose 中使用 Quarkus 和 Keycloak 时,我遇到了一个非常令人困惑的问题。当我设置环境变量以覆盖开发配置又名 quarkus.oidc.auth-serv
前言 前面选用了IdentityServer4做为认证授权的基础框架,感兴趣的可以看上篇<微服务下认证授权框架的探讨>,已经初步完成了authorization-code与implici
我有一个使用 redux-oidc 对身份服务器进行身份验证的设置。我可以登录,并且可以看到 silenRenew 在 token 过期时按预期工作。 不过有一个问题。如果我打开我的网站并让计算机进入
我试图在一个简单的 flask 应用程序中使用 Flask-oidc,以便通过 keycloak 添加身份验证。 但是,一旦我使用有效凭据登录,它就会返回到不存在的/oidc_callback。 fl
我正在使用 oidc JS cilent 库 OIDC JS 我有连接到 的客户端代码WSO2 IDP 服务器使用 openID 连接端点。流程是 隐式 在 WSO2 服务器上配置 WSO2 版本:w
我正在使用 angular-oauth2-oidc 在我的 Angular (8) 应用程序上设置 B2C。 我有一个登录和退出策略,并且我已经成功地设置了 angular-oauth2-oidc 服
我的 React 容器如下所示: class App extends React.Component { componentDidMount() { if (this.prop
我有一个使用 AAD B2C 保护的 SPA。 SPA 与同样受 AAD B2C 保护的 API 进行对话。现在,用户可以将授权 header 从 Chrome 复制/粘贴到 Postman 等工具,
我正在运行 IdentityServer4 的 Javascript 客户端示例,配置如下所示: var config = { authority: "https://localhost:44
我已经为 OIDC 设置了一个注册应用程序,并将其配置为在 Azure AD 上用于各种用途。 我集成的应用程序使用 preferred_username在 ID token 中用于各种事物。 Azu
我一直在将 keycloak 配置为 Kubernetes 集群上 eclipse hono 的身份验证和授权服务提供程序(使用 Rancher)。 文档对此几乎没有提供任何帮助,并且关于此主题的每项
我已经为 OIDC 设置了一个注册应用程序,并将其配置为在 Azure AD 上用于各种用途。 我集成的应用程序使用 preferred_username在 ID token 中用于各种事物。 Azu
我有一个 asp.net 核心应用程序,上面运行着一个 angular 2。我正在使用 oidc-client.js 库来处理登录。目前,如果用户已经登录并点击站点链接,则身份验证会正确进行,用户会被
无法使用 go 安装包。我想安装 k8s-oidc-helper 包。根据安装指南,我必须安装并运行 k8s-oidc-helper 命令。但是当我尝试它时,它说找不到命令 k8s-oidc-help
我的理解是 - oidc-client 生成随机数和状态并将其发送到授权服务器(身份服务器 4)。用于防止CSRF攻击、重放攻击。 State 和 nonce 通过下面的 signinredirect
我是一名优秀的程序员,十分优秀!