Javascript 从msal 2.0令牌获取UPN和电子邮件地址
从adal切换到msal 2.0浏览器库时,idToken响应中缺少用户的UPN,这导致将idToken传递到后端后,Javascript 从msal 2.0令牌获取UPN和电子邮件地址,javascript,c#,active-directory,adal,msal,Javascript,C#,Active Directory,Adal,Msal,从adal切换到msal 2.0浏览器库时,idToken响应中缺少用户的UPN,这导致将idToken传递到后端后,principal.Identity.name中的主体没有名称。这在adal版本中可用 var principal = tokenHandler.ValidateToken(validationToken, validationParameters, out SecurityToken validatedToken); 我得到了preferred\u name作为声明,但调用G
principal.Identity.name
中的主体没有名称。这在adal版本中可用
var principal = tokenHandler.ValidateToken(validationToken, validationParameters, out SecurityToken validatedToken);
我得到了preferred\u name
作为声明,但调用Graph API检索电子邮件地址似乎不可用,因为它不是UPN
通常,我需要如何更改msal的令牌验证和UPN检索?传递accessToken并单独验证以获得更多索赔
msal支持两种获得额外索赔的方法
const loginRequest = {
scopes: ['User.Read', 'email']
};
在验证令牌时,可以通过设置
TokenValidationParameters来使用不同的声明来获取主体的身份。NameClaimType
IdToken位于证书中。证书未加载或用户无法访问。使用虚拟连接验证证书,连接可能未完成。怀疑的是,代码使用的是TLS的默认版本,即1.0/1.1,您需要特别添加TLS版本以使用1.2/1.3。五年前,由于安全问题,业界决定取消1.0/1.1。今年6月,微软推出了一项安全更新,在服务器上禁用1.0/1.1。旧示例代码可能没有使用1.2/1.3的更新。证书还需要使用正确的加密模式。很抱歉,我的问题可能不清楚。我在这里说的是,文档不清楚密钥来自何处。甚至RCP规范也令人困惑()。JWK是JSON Web密钥。您的链接指的是JWT(JasonWeb令牌)。我认为代币和钥匙是一样的。因此,如果您查看RFC 7517第4.6段,它指的是证书。密钥不必来自证书,但证书是分发密钥的正常方法。您的文档指的是应用层,而传输层使用的是TLS身份验证。我有一种感觉,我们谈论的是非常不同的事情:)不。您正在查看唯一的应用层,我知道在较低级别发生了什么。