这个问题与此有关 passport-azure-ad, does it parse & validate token?
我试图使用passport-azure-ad模块来掌握。我使用OpenID Connect成功登录我的用户,拿起access_token并直接使用我的REST API,它由app.get('myapi',passport.authenticate('oath-bearer',
{failureRedirect: '/'}),
function(req,res){});
但是,如果我尝试从OpenID connect创建的会话中注销,则令牌仍然有效,直到它过期(通常为3600秒)。
我正在使用access_token来保护我的端点没有托管在微软的API网关后面,所以我想撤销access_token不是直截了当的。
有什么方法可以检查access_token是否使用passport-azure-ad被撤销?什么是最佳做法?
答案 0 :(得分:1)
根据Azure文档中的说明:
虽然将用户定向到
end_session_endpoint
,但会清除某些用户使用Azure AD B2C的单点登录状态,但它不会将用户从用户的社交身份提供商中签名(IDP)会议。如果用户在后续登录期间选择相同的IDP,则会在不输入凭据的情况下重新进行身份验证。如果用户想要退出您的B2C应用程序,并不一定意味着他们想要完全退出他们的Facebook帐户。但是,对于本地帐户,用户的会话将正确结束。
所以你可以直接使用end_session_endpoint
。您可以在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: Web sign-in with OpenID Connect了解更多信息。
如有任何疑问,请随时告诉我。