【发布时间】:2014-11-05 23:24:05
【问题描述】:
我们的系统中有三个通信方:
- 前端
- 服务 A
- 服务 B
此外,我们还有独立的安全令牌服务,即我们的身份提供者。
经过身份验证的用户与前端交互,它调用服务 A,后者又调用服务 B。用户的访问令牌使用“poor's man identity delegation”通过此管道传递。服务 A 和服务 B 根据传递的身份声明授权(或不授权)用户的操作。大家都很开心!
但是现在我遇到了服务 A 在运行过程中没有用户上下文的情况。它发生了:
- 启动期间
- 当服务 A 处理来自消息总线的消息时
- 定时器触发时
在每种情况下,服务 A 都需要调用服务 B 来获取一些数据,但它收到 401,因为没有将访问令牌传递给服务 B。
是否有任何最佳实践来处理这种情况?我现在唯一的想法是在我们的身份提供者中注册“系统”用户(每个服务 A、服务 B、服务 C 等可能的用户),获取该用户的访问令牌并在上述情况下使用它。但我闻起来很臭,我正在寻找替代的想法。
任何建议将不胜感激。谢谢!
【问题讨论】:
标签: web-services soa wif claims-based-identity federated-identity