Asp.net Core OpenIdConnect (OIDC) 在哪里验证状态参数
Posted
技术标签:
【中文标题】Asp.net Core OpenIdConnect (OIDC) 在哪里验证状态参数【英文标题】:Asp.net Core OpenIdConnect (OIDC) Where to Validate State Parameter 【发布时间】:2020-10-20 06:00:14 【问题描述】:在 OIDC 中间件中验证状态参数并可能拒绝请求的建议位置在哪里?
OnRedirectToIdentityProvider = (RedirectContext context) =>
context.ProtocolMessage.State = "ENCODED_STATE_PARAMETER";
return Task.CompletedTask;
谢谢, 鲁本
【问题讨论】:
【参考方案1】:在挖掘了 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 Core OpenIdConnect (OIDC) 在哪里验证状态参数的主要内容,如果未能解决你的问题,请参考以下文章
Asp.NET Core进阶 第四篇 Asp.Net Core Blazor框架
.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介
深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的
.Net Core 学习 - ASP.NET Core 概念学习
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门