我正在尝试为微服务架构实现安全解决方案。我的身份验证服务器支持OAuth2和OIDC。
我正在尝试确定是否可以在微服务之间传递JWT令牌,以避免必须反复交换不透明的令牌来获得用户的声明。没有(实用的)阻止我这样做的。我可以:
我已经读过it's ok for an access token to be a JWT。
太好了,但是:
我的(道德上的)问题是这样的:
JWT 用于specific audience。实际上,该规范基本上说如果不适合您,则应该拒绝它。
承载者令牌为intended to be non-audience specific。因此,如果我发出一个令牌,表明承载者可以阅读我的邮件,那么它可以通过六种不同的服务传递,其中任何一种都应该能够阅读我的邮件。
所以我的问题很简单,JWT如何成为不记名令牌?
奖励积分可链接到有效的分布式身份验证解决方案的任何精美文章/视频/示例!
答案 0 :(得分:1)
JWT适用于特定受众。实际上,该规范基本上说如果不适合您,则应该拒绝它。
不记名令牌也是如此。任何人都可以传递它,但是只有听众才能对它的有效性采取行动。
因此,服务X可以获取具有预期的受众服务Y的JWT承载令牌。它不会基于此授权给主叫客户端任何授权,但与此同时调用服务Y不会违反受众声明。违反听众要求的是,如果服务X验证了JWT,看到不匹配的听众,并说:“好吧,因为客户端有一个JWT声明它是用户Fubar,所以我可以返回有关用户Fubar的信息。”
不透明的非JWT承载令牌的区别在于服务X无法滥用它...