openid connect owin 如何验证来自 Azure AD 的令牌?

How does the openid connect owin validate the token from Azure AD?

我开发了一个受 Azure AD 保护的 asp.net Web 应用程序。 OpenId connect owin 中间件负责验证来自 Azure AD 的 JWT 令牌。 openid connect owin 软件如何实际验证令牌?据我了解 JWT,发送方(生成 JWT 的服务器)和接收方(使用 JWT 的应用程序)都需要共享一个秘密,但那是什么秘密呢?看不出我给owin提供了什么秘密吗?我什至看到 Javascript 示例,其中 JWT 令牌在 javascript 中得到验证,这怎么行,javascript 不能保密。

Open ID Connect 服务器使用 私钥 对令牌进行签名。客户端使用通过 public 元数据端点可用的 public 密钥 验证令牌签名。没有共享的秘密。

对于 Azure AD,阅读 Fetch the OpenID Connect metadata document