我会给出一个场景作为我的问题的前提:
在某些时候,开发人员决定是时候将客户API中的发票重构为新的Invoices API,现在需要范围“发票”。要使Customers API将预期结果返回给CRM客户端应用程序,它现在必须调用Invoices API并将该部分信息输出到调用应用程序。因此,由于新的范围要求,传递令牌将不起作用。
客户API在不破坏要求CRM客户端应用程序添加新范围的变更的情况下,将预期结果返回到CRM应用程序的最佳方法是什么?
一种方法是客户API作为客户端凭证可信子系统进行身份验证,但Invoices API将如何了解启动用户?这里的想法是在不破坏现有客户端应用程序的情况下分离功能。
答案 0 :(得分:2)
使用多跳或行为授予系统可以帮助您。如果我理解正确您的方案是:Client -> API1 -> API2
如果您希望每个图层都有自己的范围(根据您的说明进行操作),那么act-as tokens
会对您有所帮助。
IdentityServer samples issue #182提供了一个非常好的摘要。您可以在their Git repository中找到该方案的示例。