我正试图通过输出声明返回用于身份验证的人员的电子邮件地址。
我原以为索赔是";userPrincipalName";,但它返回:";40568625-8d65-433a-9dc2-bafc1e969e8c@MYTENANT.onmicrosoft.com"在";upn";声明,我需要它来返回我用来登录的电子邮件地址,在本例中是gmail地址。
当我查看账户下的用户主体时,它会显示gmail电子邮件地址。
如果用户根据电子邮件地址注册,则电子邮件地址存储在signInNames属性中。
您可以使用Azure AD Graph API读取此signInNames属性注意:signInNames是名称对象的集合。电子邮件地址是具有以下类型的名称:emailAddress。
此url用于获取已登录用户:
GET https://graph.windows.net/me?api-version
有关电子邮件地址存储的更多详细信息,请参阅此处。
正确的属性是signInNames.emailAddress.