此问题与passport-azure-ad, does it parse & validate token?相关
我试着使用passport-azure-ad模块来掌握。我成功地使用OpenID连接登录了我的用户,拿起access_token并直接使用我的REST API,这些API由app.get('myapi',passport.authenticate('oath-bearer', {failureRedirect: '/'}), function(req,res){});保护
但是,如果我尝试从OpenID connect创建的会话中注销,令牌在过期之前仍然有效(通常为3600秒)。
我使用access_token来保护我的端点,而不是托管在微软的API Gateway后面,所以我猜撤销access_token并不直接。
有没有什么方法可以用access_token -azure-ad检查密码是否被撤销了?最佳实践是什么?
发布于 2016-12-19 14:18:17
根据Azure文档中的描述:
将用户定向到Azure end_session_endpoint 时,将清除用户使用 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获取更多信息。
如有任何进一步的问题,请随时让我知道。
https://stackoverflow.com/questions/41182170
复制相似问题