2

我在后端有一个 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:获取另一个令牌,我可以使用具有该数据的后端将其验证为“不记名令牌”?

4

1 回答 1

0

我最终从前端在请求正文中发送了电子邮件,然后更新了我的护照策略以使用请求对象。

于 2019-10-18T14:44:15.403 回答