因此,我使用ADAL
库将Azure Directory Single Sign On实施到我的应用程序。
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令牌是一种好习惯,但是在我的情况下,这些令牌都不能直接使用。我只是检索/使用UniqueId
字段。所以我的问题是,我仍然需要在这里进行任何验证吗?我应该验证什么?我可以在库中使用任何内置的验证方法吗?我宁愿不要手动操作。
答案 0 :(得分:1)
在这种情况下,我会说验证不是强制性的,因为您会收到来自Azure AD的直接响应的令牌。 如果有人可以拦截并替换令牌,那么他们也可以替换应用程序检索到的签名密钥。 这意味着他们将能够伪造他们想要的任何令牌。