我们有一个在.NET中作为AppService运行的Azure应用程序接口。此接口要求您提供有效的OAUTH访问令牌。还有一个使用API的内部网站。没有什么特别事情。令牌是使用Identity Server4创建的,Identity Server4通过WS-Federation将身份验证外部化到ADFS。
现在,我们希望将API公开给外部消费者。这些外部实体是AD域的成员,应使用相同的Identity Server + ADFS组合进行身份验证。但是,我们也希望允许一些管理,节流,订阅密钥,诸如此类的事情。
我们正在研究Azure API管理来做到这一点,但在安全性方面遇到了一些困难。大多数情况下,Azure API管理允许您配置的端点本身就是实际的服务。它们的客户端ID与我们的应用程序接口使用的ClientID不同,至少我们认为应该如此。
因此,Api Management服务收到一个带有令牌的调用,但是该令牌不能用于调用我们想要管理的下游API。我们认为应该使用OAUTH代表流。
API Management是否支持该流?我们看到了许多示例,在这些示例中,您通过API管理公开的实际API基本上允许匿名调用。
如何正常配置Azure API管理来做到这一点?显然,我们不愿意从API本身中删除任何安全配置。
谢谢!期待能学到更多!
发布于 2019-12-04 17:42:11
开发者门户在OAuth实例上测试API时,会使用该实例上可用的API 2.0设置。
令牌的实际(预)验证由validate-jwt policy执行,其对颁发者、所需声明、受众等的配置应与您的令牌要求相匹配。
在没有apim头的情况下,您只需将用户重定向到登录页面(并相应地将重定向url设置回Authorization )。
https://stackoverflow.com/questions/58917229
复制相似问题