我有一个具有BFF的UI。它为每个登录用户生成一个自签名的SAML令牌。该BFF具有专用的安全微服务(仅适用于自身)。每当BFF必须调用业务API时,它都必须通过其安全微服务。 这是我的用例:
1)用户登录UI 2)BFF产生一个会话并生成自签名的SAML令牌 3)BFF现在必须调用业务API 4)BFF将SAML传递到其安全微服务 5)安全微服务转到Oauth服务器并通过SAML 6)Oauth服务器与BFF具有信任关系,并具有验证SAML签名的密钥 7)Oauth然后打开SAML的内容并使用这些声明创建一个JWT 8)Oauth将JWT发送回安全微服务。 9)安全微服务调用对业务API的调用,并将响应中继回BFF 10)BFF在用户登录时对所有其他API调用重复使用SAML。 11)安全微服务重用传递给它的SAML中对应的JWT来满足API请求;安全微服务不会验证SAML(它没有密钥,我们不希望通过为每个请求使用Oauth服务器验证SAML令牌来降低性能) 12)用户注销后,只有BFF知道用户的会话已经结束。
使安全微服务上的JWT令牌无效的最佳方法是什么?