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