我有一个 Angular 应用程序,它使用 Okta 来管理用户登录并连接到 ASP.NET Core Web API。 Angular 应用程序发送 Okta 身份验证令牌以及所有 API 请求。该 API 的目的是在处理请求之前验证身份验证令牌并提取 uid。
我按照 Okta Dev 网站上的说明进行操作:
https://developer.okta.com/docs/guides/validate-access-tokens/dotnet/main/#validate-a-token
在我的开发机器上,一切都运行良好。但是,一旦将 API 部署到 Azure,
ValidateToken
方法中的这一行每次都会失败:
var discoveryDocument = await configurationManager.GetConfigurationAsync(ct);
传入
confiurationManager
的授权服务器和Azure服务器共享相同的域,因此我认为不会存在防火墙或代理问题。有其他人使用 GetConfigurationAsync
方法遇到类似问题吗?如果有,你是如何解决的?
我在这里找到了答案: https://stackoverflow.com/a/58784678/1943644
启用 TLS 1.2 解决了该问题
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
将其放在
ConfigureServices
的Startup.cs
部分解决了问题。