如何对 Oauth2 令牌进行身份验证?

How do I authenticate an Oauth2 token?

提问人:Rich Hopkins 提问时间:11/17/2023 更新时间:11/17/2023 访问量:30

问:

我认为这是我需要回答的问题。

我正在努力将 Microsoft 和 Okta SSO 集成到我们为客户提供的软件中。其中一个大客户使用 Okta,另一个使用 Microsoft Entra ID(以前称为 Azure Active Directory)。以 Microsoft 为例,我已经完成了本教程(https://learn.microsoft.com/en-us/entra/identity-platform/tutorial-single-page-app-react-register-app),并了解了它的工作原理。

我一直看到对“验证令牌”的引用,但不知道如何做到这一点。我认为它应该工作的方式是,我们的客户端应用程序使用适用的库重定向到 SSO 提供程序。然后,用户登录,并在浏览器中将令牌发送回客户端。我明白了那部分。从那里开始,它就变得不那么清楚了。我假设我需要让客户端将令牌发送到我们的 API,然后我们的 API 需要与原始机构验证令牌是否确实有效。为什么?我想不出任何其他方法可以确保令牌没有以某种方式被盗,并且是由不同的人在不同的计算机上发送的。

在上面链接的教程的末尾,我看到调用 Microsoft Graph 来显示有关用户的信息,并且我已经验证了我的测试用例中的 ID 是我的用户帐户在 Entra ID 中的对象 ID,当然名称和电子邮件是我的。我想知道在服务器端验证的情况下,是否要在服务器上完成对 Microsoft Graph 的调用,但我还没有找到任何这样的引用。

azure-active-directory 单一登录 microsoft-entra-id

评论

1赞 juunas 11/17/2023
这会有帮助吗?stackoverflow.com/a/39870281/1658906通常使用标准 JWT 验证库,并将其指向 Azure AD OpenID Connect 元数据终结点,以便它可以从那里获取有效的颁发者、签名密钥等。
0赞 Rich Hopkins 11/17/2023
这绝对让我走上了正确的道路。谢谢。

答: 暂无答案