通过Azure API管理公开受OAUTH保护的API并执行委派

通过Azure API管理公开受OAUTH保护的API并执行委派,oauth,identityserver4,azure-api-management,delegation,Oauth,Identityserver4,Azure Api Management,Delegation,我们有一个.NET API作为应用服务在Azure中运行。此API要求您提供有效的OAUTH访问令牌。还有一个使用API的内部网站。没什么特别的。令牌是使用Identity Server 4创建的,Identity Server 4通过WS-Federation将身份验证外部化到ADF 现在,我们想向外部使用者公开API。这些外部实体是AD域的成员,应该使用相同的Identity Server+ADFS组合进行身份验证。但是,我们也希望允许一些管理、节流、订阅密钥之类的东西 我们正在研究Azur

我们有一个.NET API作为应用服务在Azure中运行。此API要求您提供有效的OAUTH访问令牌。还有一个使用API的内部网站。没什么特别的。令牌是使用Identity Server 4创建的,Identity Server 4通过WS-Federation将身份验证外部化到ADF

现在,我们想向外部使用者公开API。这些外部实体是AD域的成员,应该使用相同的Identity Server+ADFS组合进行身份验证。但是,我们也希望允许一些管理、节流、订阅密钥之类的东西

我们正在研究Azure API管理来做到这一点,但在安全性方面遇到了一些困难。大多数情况下,Azure API管理允许您配置的端点本身就是实际的服务。他们的客户端ID与API使用的ClientID不同,至少我们认为应该是这样

因此,Api管理服务接收带有令牌的调用,但是,该令牌不能用于调用我们想要管理的下游Api。我们认为代表流的OAUTH应该用于它

API管理支持这个流程吗?我们看到很多示例,其中您通过API管理公开的实际API基本上允许匿名调用

人们通常如何配置Azure API管理来做到这一点?显然,我们不愿意从API本身删除任何安全配置


谢谢!期待更多的学习

开发人员门户在测试API时使用APIM实例上可用的OAuth 2.0设置

代币的实际(预)验证由执行,其针对发行人、所需索赔、受众等的配置应符合您的代币要求

如果没有
授权
标题,您只需将用户重定向到登录页面(并相应地将重定向url设置回APIM)