asp.net-mvc - Asp.net Core OpenIdConnect (OIDC) 在哪里验证状态参数

标签 asp.net-mvc cookies openid-connect auth0 asp.net-core-2.2

建议在 OIDC 中间件中验证状态参数并可能拒绝请求的位置在哪里?

OnRedirectToIdentityProvider = (RedirectContext context) =>
{
    context.ProtocolMessage.State = "ENCODED_STATE_PARAMETER";
    return Task.CompletedTask;
} 

谢谢, 鲁本

最佳答案

在深入研究 OIDC 源代码后,我找到了这个解决方案,

options = new OpenIdConnectOptions()
// ...
options.ProtocolValidator = new MyOIDCProtocalValidator();

public sealed class MyOIDCProtocalValidator: OpenIdConnectProtocolValidator
{
    public MyOIDCProtocalValidator(): base()
    {
        // not sure if these are needed
        base.RequireState = true;
        base.RequireStateValidation = true;
    }

    protected override void ValidateState(OpenIdConnectProtocolValidationContext validationContext)
    {
        // validate state here 
        // if(valid) do nothing
        // else throw new OpenIdConnectProtocolInvalidStateException();
    }
}

关于asp.net-mvc - Asp.net Core OpenIdConnect (OIDC) 在哪里验证状态参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62648864/

相关文章:

javascript - angular.js 指令将变量传递给模板

ruby-on-rails - 通过 Rack 中间件向 Rails 添加 'SameSite=None;' cookie?

node.js - 未设置 Cookie,即使它在响应 header 中。使用快速 session cookie

kubernetes - minikube 可以处理 oidc 身份验证吗?

Go 中的 Azure JWT 验证不起作用

.net-core - 如何在其他 API localhost/SalesAPI 中授权从 localhost/UserManagement API 生成的 openiddict token

asp.net - 如何在 ASP.NET MVC 中呈现事件报表 WebViewer

c# - ASP.NET核心: Custom IFileProvider prevents default IFileProvider from working

asp.net - 根据 Controller 指定不同的 _Layout.cshtml

php - 在用户注销时从我的应用程序中删除 facebook session cookie