我是否需要像验证令牌一样验证 AuthenticationResult 的 UserInfo?

Do I need to validate the UserInfo of AuthenticationResult like we need for the token?

所以我使用 ADAL 库来实现我的应用程序的 Azure 目录单一登录。 documentation

我将 { "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 令牌是一种很好的做法,但在我的情况下,这些令牌都没有被直接使用。我只是 retrieve/use UniqueId 字段。所以我的问题是,我还需要在这里做任何验证吗?我应该验证什么?库中有没有我可以利用的内置验证方法?我不想手动操作。

在这种情况下,我会说验证不是强制性的,因为您收到来自 Azure AD 的直接响应令牌。 如果有人可以拦截并替换令牌,那么他们也可以替换您的应用程序检索到的签名密钥。 这意味着他们将能够伪造他们想要的任何令牌。