Asp.net web api 使用Web API w/OWIN中间件作为应用程序之间的共享资源

Asp.net web api 使用Web API w/OWIN中间件作为应用程序之间的共享资源,asp.net-web-api,owin,Asp.net Web Api,Owin,我感兴趣的是使用OWIN中间件创建一个共享的Web API,它可以为许多不同的应用程序提供服务。这个概念要求/Token路由和api/Account/Register路由能够根据通知它调用哪个应用程序的请求参数访问不同的数据库。在阅读了OWIN之后,我没有看到任何关于如何实现这一点的信息。建议每个应用程序使用一个Web API吗?或者最初的概念是可行的 我当然感谢你的任何意见 =======[阅读@William的回复后编辑]========================= 这个概念是一个单点

我感兴趣的是使用OWIN中间件创建一个共享的Web API,它可以为许多不同的应用程序提供服务。这个概念要求/Token路由和api/Account/Register路由能够根据通知它调用哪个应用程序的请求参数访问不同的数据库。在阅读了OWIN之后,我没有看到任何关于如何实现这一点的信息。建议每个应用程序使用一个Web API吗?或者最初的概念是可行的

我当然感谢你的任何意见

=======[阅读@William的回复后编辑]=========================

这个概念是一个单点登录场景,其中有一个遗留应用程序通过表单身份验证来处理其自身的安全性,但现在需要有一些用户可以访问的卫星应用程序,这取决于他们购买了哪些应用程序

Web API将成为管理所有卫星应用程序令牌的代理。由于卫星应用程序的访问是付费的,因此令牌需要以某种方式分离

还有一种可能性是,一些公司合作伙伴可能希望访问他们出售的网站,由于我目前不清楚的原因,相信这些合作伙伴希望将代币存储在他们自己的数据库中。因此,Web API需要能够划分令牌以满足这些需求

一旦卫星应用程序被用户点击,这些将成为spa的应用程序将与Web API进行通信,以完成其所有数据层工作

@William说“每个应用程序必须共享同一个userstore”的部分听起来很糟糕;-我有一种感觉,这是行不通的


而且它必须是一个自定义OWIN实现,因为传统应用程序是驱动程序。

听起来像是您在寻找一个许多应用程序都会用来进行身份验证的中央身份验证服务/服务器

不同的数据库确实让我震惊。您是说在进行身份验证时,用户可以访问特定的数据库吗?还是说要从多个标识存储进行身份验证

对于集中式身份验证解决方案,我建议使用identity server WIF和/或authorization server OAUTH。每项申请都是一个依赖方

如果您真的想使用自定义owin解决方案,可以使用单一api解决方案进行承载授权,并在其他应用程序中使用该令牌,但您需要实现ISecureDataFormat,以便每个应用程序都可以解密令牌以获得标识,并且每个应用程序都必须共享相同的用户存储

只是提醒一下,解密并不意味着你可以信任一个令牌,它确实应该被签名和验证以获得完全信任。取决于你的需要和你愿意承担的风险