ASP.NET Core - AddJwtBearer - 授权 URL,它是如何工作的?

Posted

技术标签:

【中文标题】ASP.NET Core - AddJwtBearer - 授权 URL,它是如何工作的?【英文标题】:ASP.NET Core - AddJwtBearer - Authority URL, how does it work? 【发布时间】:2019-10-29 23:38:14 【问题描述】:

我最近提出的一个问题是关于 asp.net 核心中的 JWT 中间件是如何工作的,如果您想使用身份提供者非对称密钥(大概基于 JWKS)验证令牌,您可以设置授权 URL。我看到的所有示例都完全无法解释这个权限 URL 应该是什么。一些 auth0 示例说它只是您的 auth0 域 - 但如果是这种情况,那么中间件如何从这个基本 URL 中找到公钥?对于可以找到 JWKS 的端点,每个提供者都有不同的约定 - 那么这是如何工作的呢?

我的要求是我需要使用 JWKS 端点完全不同于 auth0、okla、identity 4 或任何其他提供者使用的本地身份提供者。

是否有一些我不知道的所有这些提供商都使用的标准发现机制?我是否需要有同样的发现机制我是内部身份 Web 应用程序才能让这个中间件工作?

谢谢!

【问题讨论】:

【参考方案1】:

通常,OpenID 连接提供商遵循标准并提供一个发现端点,其中包括所有必要的端点和公钥位置信息。

OpenID 连接规范:https://openid.net/specs/openid-connect-discovery-1_0.html

Auth0 公开 OIDC 发现文档 (https://YOUR_DOMAIN/.well-known/openid-configuration)。这些可用于自动配置应用程序。 https://auth0.com/docs/protocols/oidc/openid-connect-discovery

IdentityServer 4 允许在发现文档中包含额外的端点。 http://docs.identityserver.io/en/latest/topics/discovery.html

【讨论】:

以上是关于ASP.NET Core - AddJwtBearer - 授权 URL,它是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

Asp.NET Core进阶 第四篇 Asp.Net Core Blazor框架

.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介

asp.net core 注入后仍然报错?

深入研究 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 入门