1

这个问题与 passport-azure-ad 有关,它是否解析和验证令牌?

我试图掌握使用 passport-azure-ad 模块。我使用 OpenID Connect 成功登录了我的用户,拿起 access_token 并直接使用我的 REST API,这些 API 由app.get('myapi',passport.authenticate('oath-bearer', {failureRedirect: '/'}), function(req,res){});

但是,如果我尝试从 OpenID connect 创建的会话中注销,则令牌在到期之前仍然有效(通常为 3600 秒)。

我正在使用 access_token 来保护我的端点没有托管在 Microsoft 的 API 网关后面,所以我猜 access_token 的撤销不是直截了当的。

有什么方法可以检查 access_token 是否使用 passport-azure-ad 被撤销?最好的做法是什么?

4

1 回答 1

1

根据 Azure Document 上的描述:

在将用户定向到end_session_endpoint将清除用户使用 Azure AD B2C 的某些单点登录状态时,它不会将用户从用户的社交身份提供程序 (IDP) 会话中注销。如果用户在后续登录期间选择了相同的 IDP,他们将被重新验证,而无需输入他们的凭据。如果用户想要退出您的 B2C 应用程序,并不一定意味着他们希望完全退出他们的 Facebook 帐户。但是,在本地帐户的情况下,用户的会话将正确结束。

所以你可以直接使用end_session_endpoint. 您可以在b2c_1_sign_in策略端点的元数据文档中找到它,例如:

https://login.microsoftonline.com/fabrikamb2c.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=b2c_1_sign_in

就像您在 v1 中使用常见的 Azure AD 应用程序一样,您也可以end_session_endpoint在元数据文档中找到,例如:

https://login.microsoftonline.com/fabrikamb2c.onmicrosoft.com/.well-known/openid-configuration

您可以参考Azure Active Directory B2C:使用 OpenID Connect 进行 Web 登录以获取更多信息。

如有任何进一步的疑虑,请随时告诉我。

于 2016-12-19T06:18:16.777 回答