是否可以从承载令牌获取Azure AD应用程序名称?

是否可以从承载令牌获取Azure AD应用程序名称?,azure,asp.net-web-api,azure-active-directory,Azure,Asp.net Web Api,Azure Active Directory,我正在使用Azure AD对在Azure AD中注册的某些应用程序对我的Web API的访问进行身份验证。身份验证过程运行得很好,但我想知道我可以选择哪些选项来审核谁正在访问API?如果我从外部API看到的唯一东西是它们的有效承载令牌,那么有什么方法可以获取应用程序名称,例如 身份验证过程也发生在我们的服务器上,因此在过程的前面我们会看到客户端ID。但是,是否有一种安全的方法将令牌绑定到客户端ID或从其中任何一个获取名称?看看-您可以向承载令牌添加额外的数据。如果您已经拥有令牌,为什么不直接使用

我正在使用Azure AD对在Azure AD中注册的某些应用程序对我的Web API的访问进行身份验证。身份验证过程运行得很好,但我想知道我可以选择哪些选项来审核谁正在访问API?如果我从外部API看到的唯一东西是它们的有效承载令牌,那么有什么方法可以获取应用程序名称,例如


身份验证过程也发生在我们的服务器上,因此在过程的前面我们会看到客户端ID。但是,是否有一种安全的方法将令牌绑定到客户端ID或从其中任何一个获取名称?

看看-您可以向承载令牌添加额外的数据。如果您已经拥有令牌,为什么不直接使用令牌查询应用程序的名称?@XiaominWu是否有可能,仅从令牌获取数据?@edparry,令牌由发行人准备,除非发行人在令牌中添加了一些额外的“声明”,否则答案是否。尝试解密令牌,并检查所有声明,看看它包含什么声明。如果它没有携带您想要的东西,那么仅仅查看令牌是没有办法的,您需要向服务发出请求以获取您想要的东西。@edparry还请注意,您使用的令牌(我假设它是OAuth流)不是供您的应用程序使用的,而是供API使用的。它甚至可能是对从AS交付的令牌的唯一引用(Azure AD中并非如此,但OAuth规范允许这样做)。不要将令牌内容用于业务逻辑。您希望实现的场景是什么?您希望验证令牌是否为正确的应用程序颁发,或者您希望根据令牌内容在应用程序中执行某些操作?请查看-您可以向承载令牌添加额外数据。如果您已经拥有令牌,为什么不直接使用令牌查询应用程序的名称?@XiaominWu是否有可能,仅从令牌获取数据?@edparry,令牌由发行人准备,除非发行人在令牌中添加了一些额外的“声明”,否则答案是否。尝试解密令牌,并检查所有声明,看看它包含什么声明。如果它没有携带您想要的东西,那么仅仅查看令牌是没有办法的,您需要向服务发出请求以获取您想要的东西。@edparry还请注意,您使用的令牌(我假设它是OAuth流)不是供您的应用程序使用的,而是供API使用的。它甚至可能是对从AS交付的令牌的唯一引用(Azure AD中并非如此,但OAuth规范允许这样做)。不要将令牌内容用于业务逻辑。您希望实现的场景是什么?您希望验证令牌是为正确的应用程序颁发的,还是希望根据令牌内容在应用程序中执行某些操作?