asp.net - 我需要像我们需要令牌一样验证 AuthenticationResult 的 UserInfo 吗?
问题描述
因此,我使用该ADAL
库在我的应用程序中实现 Azure 目录单点登录。
文件
我添加{ "scope", "openid"}
到请求 url 以便id_token
返回。然后我检索用户的唯一 ID 以在数据库中查找。
AuthenticationContext ac = new AuthenticationContext(MicrosoftAuthBaseURL);
ClientCredential clcred = new ClientCredential(MicrosoftAppId, MicrosoftAppSecret);
AuthenticationResult acResult = ac.AcquireTokenByAuthorizationCodeAsync(code, new Uri(RedirectURI), clcred).Result;
SignInUser(acResult.UserInfo.UniqueId);
我知道验证访问令牌或 id 令牌是一个好习惯,但在我的情况下,这些令牌都没有直接使用。我只是检索/使用该UniqueId
字段。所以我的问题是,我还需要在这里做任何验证吗?我应该验证什么,我可以在库中利用任何内置的验证方法吗?我不喜欢手动做。
解决方案
在这种情况下,我会说验证不是强制性的,因为您会收到来自 Azure AD 的直接响应的令牌。如果有人可以拦截并替换令牌,那么他们也可以替换您的应用程序检索到的签名密钥。这意味着他们将能够伪造他们想要的任何令牌。
推荐阅读
- ffmpeg - 单词结束时绘制文本ffmpeg不结束
- kvm - 我通过 Ubuntu 存储库中的突触安装了 KVM,现在我的计算机无法启动。
- swift - Swift Eureka ActionSheetRow 选项基于另一行的值
- ruby-on-rails - 在多语言 Rails 应用程序中重定向控制器操作的最佳方法是什么?
- php - PHP DOM 返回为 html
- vba - 将具有固定起始单元格的列与最后一列 VBA 相加
- kubernetes - 与 configmap 通信时出错
- java - 使用java在sql插入上声明标量变量
- firebase - Javascript ES6 如何将 const 函数转换为函数
- java - 单击编辑按钮后,Thymeleaf 下拉菜单不会自动填充