我绝不是 MSAL/JWT/Graph 身份验证方面的专家,但我希望有人可以更清楚地向我解释这个问题,或者帮助我了解是否有解决方法或更好的方法。
从本质上讲,在某些情况下,我最终可能会使用 Microsoft Graph JWT 令牌。我可以轻松想到的两个示例是使用 Microsoft Graph Toolkit 或在 Microsoft Teams 中使用 Tabs SSO。在这两种情况下,我都可以从我已经拥有的 JWT 令牌(通过 Graph Toolkit 或通过 Teams SSO)获取用户的相关身份信息——他们的 Azure AD 对象 ID 和租户 ID。但是,我不能将相同的令牌用于我自己的后端 API,因为根据我的研究,我无法针对该 JWT 令牌执行基本令牌验证。例如,我希望能够针对该用户和租户 ID 组合存储信息。
我确实知道我可以进行自己的身份验证(例如 MSAL.js),我什至可以通过扩展其使用来使用 SAME Azure AD 应用程序,但是如果我已经可以访问它,那么简单地使用我已经可以访问的令牌会容易得多只有一种方法可以验证它。例如,在 Teams 中,SSO 用户体验被很好地集成,但我需要让用户通过另一个登录,甚至可能是相同的 Azure AD 应用程序。[更新:所以从技术上讲,这不是另一个“登录”——用户已经登录,因此是“SSO”,但他们需要再次同意,在这种情况下,他们需要再次同意他们之前同意的同一个应用程序]。
所以,我的问题是,有什么方法可以安全地验证现有令牌?