IdentityServer 3使用User Informatioin保护webAPI

时间:2016-05-31 22:57:32

标签: identityserver3

我们需要使用开放ID和OAuth标准来保护我们的.net网络API。 IdentityServer 3非常适合我们,因为我们必须使用现有的用户存储。

编辑更清晰: 我们公司为多个客户服务。我们每个客户都有自己的数据库。在我们的本地客户端应用程序中,当客户用户输入他们的用户/密码时,我们会进行查询以进行身份​​验证,并确定应用程序连接到的后端数据库。

我们现在需要允许几个可信赖的合作伙伴访问我们的数据库资源以满足特定需求。我们为他们创建了一个web api来进行特定的调用。 web api需要知道合作伙伴正在呼叫哪个客户。合作伙伴从他们这边的服务中调用api,因此没有用户交互。

我正在尝试确定用于实现此目的的流程。我在https://gist.github.com/jawadatgithub/638c11f08ecc0d76b05c找到了一些关于流量的非常好的信息。

如果我使用客户端凭证流定义客户端,我不知道他们如何代表他们传递客户。我认为我们不想为每个合作伙伴/客户组合定义“客户”,但这是正确的方法吗?

我们最初想到的是提供一个额外的用户/密码或密钥来告诉我们客户,但我不确定客户的“流量”是什么允许这样做。

非常感谢任何帮助或指示。

1 个答案:

答案 0 :(得分:0)

如果这有助于其他任何人,我们决定采用混合流程来处理这些类型的请求。我们考虑为每个客户数据库指定一个服务帐户(用户/ pw),通过使用资源所有者密码凭据流请求令牌,使这个受信任的第三方部分访问它们,但决定反对它。我们决定反对它,原因是标准规定不要将其用于此用途。

如果第三方希望代表我们的某个客户与我们互动,那么他们需要在他们身边构建UI以重定向到我们以进行用户/ pw身份验证和同意。