获取链接到 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)。
所以现在的问题是:
- 我能否以某种方式将信息添加到令牌中?由于令牌来自 Azure AD,我想这也是添加额外信息的地方,但我不确定这是否可行。
- 如果不是,我能否以某种方式使用 sid 将其转换为已登录的用户?
也许还有其他我没有想到的选择。
我找到了这个:https://github.com/Azure/azure-mobile-apps-net-server/wiki/Understanding-User-Ids。它解释了 "stable_sid" 属性 是一个比用户的电子邮件地址更稳定的标识符,因为您可能有多个身份验证提供程序,而提供程序又可能决定改变他们这边的内容。
所以我得出结论,与其尝试查找电子邮件地址,不如重写一些内容以使用 stable_sid 标识符。
我是 运行 一个连接到托管在 Azure 上的 Web API 的 Cordova 应用程序。我已经使用 Azure AD 持有者身份验证保护了 API。当用户尝试调用其中一个端点时,他将被转到 Azure AD 登录页面,输入他的凭据,然后获得令牌。令牌将添加到 API 的所有后续请求中。我正在使用移动应用程序客户端 SDK (cordova-plugin-ms-azure-mobile-apps)。
我现在想知道谁在服务器端调用 API。我已经检查了我的 Web API 控制器的用户 属性。那里有一些信息,包括一些声明,但没有任何类似于实际用户名的信息(只有一个 sid)。
所以现在的问题是:
- 我能否以某种方式将信息添加到令牌中?由于令牌来自 Azure AD,我想这也是添加额外信息的地方,但我不确定这是否可行。
- 如果不是,我能否以某种方式使用 sid 将其转换为已登录的用户?
也许还有其他我没有想到的选择。
我找到了这个:https://github.com/Azure/azure-mobile-apps-net-server/wiki/Understanding-User-Ids。它解释了 "stable_sid" 属性 是一个比用户的电子邮件地址更稳定的标识符,因为您可能有多个身份验证提供程序,而提供程序又可能决定改变他们这边的内容。
所以我得出结论,与其尝试查找电子邮件地址,不如重写一些内容以使用 stable_sid 标识符。