【问题标题】:Web API authorization for multiple external websites多个外部网站的 Web API 授权
【发布时间】:2017-12-09 03:32:28
【问题描述】:

需要有一个通用的 Web api 应用程序来服务 3 个不同的 MVC Web 应用程序。这些客户端 Web 应用程序有自己的数据库和自己的身份验证实现。我们如何配置 web api 应用程序以单独为 web 应用程序 1 提供对一组 API 的访问,并拒绝所有其他 web 应用程序,类似地为 web 应用程序 2 等等?换句话说,有没有办法将每个 Web 应用程序“注册”到 Web api 服务,并构建一种机制,通过该机制,Web 应用程序只允许访问一组端点?谢谢大家的帮助..

【问题讨论】:

    标签: c# asp.net authentication asp.net-web-api authorization


    【解决方案1】:

    有几种方法可以解决这个问题

    • 托管multiple WebAPI servers in a single process 以有效满足您的要求,同时让您的项目更易于组织

    • 使用Authentication and Authorization filters 自定义接受、拒绝和路由请求的方式

    • 在硬件级别使用路由器和/或交换机,创建结合反向代理的黑名单/白名单(使用此解决方案,请注意 MAC 欺骗等)

    • 使用依赖注入向进程添加抽象,并删除以编程方式以非预期方式指定自定义端点的能力;但是,此解决方案仅在您控制客户端代码时才有效

    从它的声音来看,您所描述的问题似乎与端点的可见性无关,而是与利用它们的访问控制有关。如果我错了,请在评论中告诉我,我会更新我的答案。

    【讨论】:

    • 感谢您的回复@william 以及提供的选项数量。是的,你是对的。它更多的是关于访问而不是可见性。我已经更新了问题以反映这一点。我有兴趣在您的评论中探索选项 2。有没有办法根据外部 Web 应用程序注册动态创建授权过滤器并将其分配给 Web api 服务中的一组端点,也许可以在 web-api 应用程序启动期间完成?
    猜你喜欢
    • 2014-10-03
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2011-04-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多