我正在使用 Microsoft.AspNetCore.Authentication.OpenIdConnect
和 Microsoft.AspNetCore.Authentication.JwtBearer
来验证ASP.NET核心应用程序中的OAuth令牌 . 如果我自己禁用了内置的受众验证并验证了 aud
声明,除了校验和或签名检查之外还有什么必要的字符串比较吗?
我有一个特定的场景是我有一个纯客户端SPA应用程序使用msal.js(Azure AD OpenId Connect Workflow V2)与具有不同应用程序注册的.NET API交谈(因此不同的ApplicationId / ClientId / Audidence取决于抽象层) . 即使使用原始 POST
调用,v2 Oauth工作流也不允许我在浏览器中公开客户端密钥或私钥 . 我更愿意让API接受多个受众,然后共享应用注册,直到流程存在 .
1 回答
查看Microsoft.IdentityModel.Tokens的代码,实际执行的验证只是字符串比较 . 似乎没有任何校验和签名检查 .