我在后端有一个 angular8 应用程序,使用官方 msal 包(不是 angular 包,主要包)我使用passport-azure-ad 授权(官方微软包)
我需要在 IdToken 中包含用户的电子邮件地址,因为我无法使用承载策略对访问令牌进行验证。我需要一些方法来通过 UPN 或直接获取该电子邮件地址。
我在不同的 AD 组下尝试了 4 个不同的帐户,到目前为止,只有 1 个 AD 组实际上在 idToken 中显示了一个“电子邮件”或“upn”字段。
登录请求的选项:
private loginRequest: Msal.AuthenticationParameters = {
scopes: ['user.read', 'email', 'profile', 'openid'],
extraScopesToConsent: ['email']
};
我尝试了我能想到的任何变体,我尝试让它们以大写字母(Email,User.Read)开头,就像在屏幕截图中一样,我尝试在范围和 extraScopesToConsent 周围交换它们,我尝试将“upn”放在任何地方但没有运气。
是否有可能:
A:以某种方式在令牌中获取该数据 B:获取另一个令牌,我可以使用具有该数据的后端将其验证为“不记名令牌”?