OpenID Connect 与 ASP NET Core 3.1 没有众所周知的 URL
Posted
技术标签:
【中文标题】OpenID Connect 与 ASP NET Core 3.1 没有众所周知的 URL【英文标题】:OpenID Connect with ASP NET Core 3.1 without well-known URL 【发布时间】:2021-11-14 06:16:24 【问题描述】:我正在尝试以这种方式使用 ASP.NET Core 3.1 配置 OpenID Connect:
.AddOpenIdConnect(cfg =>
cfg.Authority = "https://myurl.io";
cfg.ClientId = "123455555";
cfg.ClientSecret = "11111";
cfg.ResponseType = "code";
cfg.Scope.Clear();
cfg.Scope.Add("openid");
);
但是当我尝试启动应用程序时,出现以下错误:
System.InvalidOperationException:IDX20803:无法从以下位置获取配置:'[PII 已隐藏。有关更多详细信息,请参阅 https://aka.ms/IdentityModel/PII。]'。
嗯,我知道这是因为我没有众所周知的 medadata url,有没有办法忽略这个 url 并在Startup.cs
中手动填写信息?
【问题讨论】:
"我没有众所周知的媒体数据 url" OIDC 提供程序不支持发现吗? 【参考方案1】:可以直接指定配置:
services
.AddAuthentication()
.AddOpenIdConnect(options =>
options.Configuration = new OpenIdConnectConfiguration
JwksUri = "",
AuthorizationEndpoint = "",
TokenEndpoint = "",
UserInfoEndpoint = "",
Issuer = "",
// ...
;
)
根据您的需要,您可能至少需要填写:
授权端点 令牌端点 用户信息端点 发行人 jwks 端点(或以不同方式执行验证)【讨论】:
以上是关于OpenID Connect 与 ASP NET Core 3.1 没有众所周知的 URL的主要内容,如果未能解决你的问题,请参考以下文章
OpenID Connect 与 ASP NET Core 3.1 没有众所周知的 URL
ASP.NET Core OpenID Connect 中的单点注销
ASP .NET Core OpenID Connect - 在外部登录后发出我自己的 cookie?
如何使用带有 OpenId Connect 的刷新令牌在 asp.net 核心中处理过期的访问令牌
ASP.NET Web API 和 OpenID Connect:如何从授权码中获取访问令牌
Chrome 未在我的 OpenID Connect 工作流程 (ASP.NET OWIN) 中保存/返回 Nonce cookie