MSAL idToken没有UPN,个人资料或电子邮件数据?在idToken中需要它来获得护照-天蓝色-广告授权

时间:2019-06-05 14:07:50

标签: azure active-directory msal msal.js passport-azure-ad

我在使用(not the one for angular, the main one)授权的后端上使用官方msal软件包passport-azure-ad (official microsoft package)来使用angular8应用

我需要在IdToken中包含用户的电子邮件地址,因为我无法针对访问令牌对承载策略进行验证。我需要某种方式通过UPN或直接获取该电子邮件地址。

我在不同的广告组下尝试了4个不同的帐户,到目前为止,仅对1个广告组它实际上在idToken中显示了“电子邮件”或“ upn”字段。

Permissions configured in the app screenshot.

登录请求的选项:

  private loginRequest: Msal.AuthenticationParameters = {
    scopes: ['user.read', 'email', 'profile', 'openid'],
    extraScopesToConsent: ['email']
  };

我尝试了所有可以想到的变体,尝试让它们以大写字母(Email,User.Read)开头,如屏幕截图所示,我尝试将它们围绕scope和extraScopesToConsent交换,我尝试将“没有任何运气。

是否可以:

A:以某种方式在令牌中获取该数据 B:获取另一个令牌,我可以用包含该数据的后端将其验证为“承载令牌”吗?

1 个答案:

答案 0 :(得分:0)

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