使用单个身份验证层对多个 WebAPI 进行身份验证
Authenticating multiple WebAPIs with a single Identity Authentication layer
我一直在努力研究如何为我们的 current/future WebAPI 简化我们的 WebAPI/Identity 身份验证。我是新手,但我会尽我所能解释它。我们从一个 WebAPI 开始,并设置 ASP.Net Identity 来处理身份验证等。然后再设置一个,很快就30了
这里的问题很明显 - 对于每个新 WebAPI,我们都必须插入另一个 MS 身份授权层。在某些情况下,只需要一个大型 WebAPI 就可以,但在这种情况下,这些是完全独立的产品(加上其糟糕的设计)。
所以我们想拍这样的东西:
但我很难弄清楚每个 WebAPI 如何获取用户信息,以便我可以检查角色等。
我读过很多关于 WebAPI 身份验证的帖子,例如:this this and this 但似乎我发现的所有内容都与保护 SINGLE WebAPI 有关,我们知道如何已经这样做了。感觉我们需要的是一种用于 WebAPI 的 SSO 方法。似乎我们需要类似外部身份验证方法(如 Facebook、Twitter 等)但使用我们自己的后端数据库——我只是不知道正确的术语。
所以我向专家寻求帮助,让我朝着正确的方向前进:
- 让每个 WebAPI 都有自己的 authentication/authorization 层,每个层都指向同一个数据库是常见的做法吗?
- WebAPI/Identity 中是否已经内置了单一身份验证层概念,还是我必须从头开始?
- 我们应该使用 Authentication Filter 吗?
我可以在幕后一起破解它,但感觉好像有一个明显的答案是我想念的。
是否有内置方法在每个 WebAPI 和身份验证 API 之间设置 "Trust" 来执行如下操作:
这是我们目前前进的方向:
如果我能在正确的方向上得到一个普遍的推动,我会很高兴。我只是不想重新发明轮子。
哦,在我忘记之前,我们在 IIS
上使用 asp.net 4.5,WebAPI 2,Identity 2
谢谢指点。
不要给出过于简单的答案,但你不能只构建一个 API 作为围绕其他人的 fasad。顶层 API 处理所有授权,然后将呼叫转发给您的其他 API。我不是建筑师,但这就是我会做的。
您正在寻找的是您自己的网络 API 的联合身份,Thinktecture's Identity Server aims to solve. The documentation 可能是最好的起点
我一直在努力研究如何为我们的 current/future WebAPI 简化我们的 WebAPI/Identity 身份验证。我是新手,但我会尽我所能解释它。我们从一个 WebAPI 开始,并设置 ASP.Net Identity 来处理身份验证等。然后再设置一个,很快就30了
这里的问题很明显 - 对于每个新 WebAPI,我们都必须插入另一个 MS 身份授权层。在某些情况下,只需要一个大型 WebAPI 就可以,但在这种情况下,这些是完全独立的产品(加上其糟糕的设计)。
所以我们想拍这样的东西:
但我很难弄清楚每个 WebAPI 如何获取用户信息,以便我可以检查角色等。
我读过很多关于 WebAPI 身份验证的帖子,例如:this this and this 但似乎我发现的所有内容都与保护 SINGLE WebAPI 有关,我们知道如何已经这样做了。感觉我们需要的是一种用于 WebAPI 的 SSO 方法。似乎我们需要类似外部身份验证方法(如 Facebook、Twitter 等)但使用我们自己的后端数据库——我只是不知道正确的术语。
所以我向专家寻求帮助,让我朝着正确的方向前进:
- 让每个 WebAPI 都有自己的 authentication/authorization 层,每个层都指向同一个数据库是常见的做法吗?
- WebAPI/Identity 中是否已经内置了单一身份验证层概念,还是我必须从头开始?
- 我们应该使用 Authentication Filter 吗?
我可以在幕后一起破解它,但感觉好像有一个明显的答案是我想念的。
是否有内置方法在每个 WebAPI 和身份验证 API 之间设置 "Trust" 来执行如下操作:
这是我们目前前进的方向:
如果我能在正确的方向上得到一个普遍的推动,我会很高兴。我只是不想重新发明轮子。
哦,在我忘记之前,我们在 IIS
上使用 asp.net 4.5,WebAPI 2,Identity 2谢谢指点。
不要给出过于简单的答案,但你不能只构建一个 API 作为围绕其他人的 fasad。顶层 API 处理所有授权,然后将呼叫转发给您的其他 API。我不是建筑师,但这就是我会做的。
您正在寻找的是您自己的网络 API 的联合身份,Thinktecture's Identity Server aims to solve. The documentation 可能是最好的起点