获取链接到 Azure AD 不记名令牌的用户名

Get username linked to Azure AD bearer token

我是 运行 一个连接到托管在 Azure 上的 Web API 的 Cordova 应用程序。我已经使用 Azure AD 持有者身份验证保护了 API。当用户尝试调用其中一个端点时,他将被转到 Azure AD 登录页面,输入他的凭据,然后获得令牌。令牌将添加到 API 的所有后续请求中。我正在使用移动应用程序客户端 SDK (cordova-plugin-ms-azure-mobile-apps)。

我现在想知道谁在服务器端调用 API。我已经检查了我的 Web API 控制器的用户 属性。那里有一些信息,包括一些声明,但没有任何类似于实际用户名的信息(只有一个 sid)。

所以现在的问题是:

也许还有其他我没有想到的选择。

我找到了这个:https://github.com/Azure/azure-mobile-apps-net-server/wiki/Understanding-User-Ids。它解释了 "stable_sid" 属性 是一个比用户的电子邮件地址更稳定的标识符,因为您可能有多个身份验证提供程序,而提供程序又可能决定改变他们这边的内容。

所以我得出结论,与其尝试查找电子邮件地址,不如重写一些内容以使用 stable_sid 标识符。