4

我们目前在我们的组织中有一个典型的表单身份验证设置;登录页面位于帐户/登录等位置。我们希望保留这一点,但也希望开始使用 OAUTH2 保护我们的一些 API;本质上,我们是提供者。

通过阅读有关该主题的一些信息,不支持 Microsoft 的 OWIN OAUTH 实现向前推进(例如 vNext),并且不支持 OAUTH2 的所有流程。Thinktecture 的 identityserver3 似乎是目前“标准”和最完整的解决方案。

我似乎找不到将 identityserver3 与需要表单身份验证的现有应用程序一起使用的示例。

我们将考虑以两种不同的方式使用它;一种使用 javascript 的隐式流程,一旦用户登录到我们(使用表单身份验证)并且用户允许客户端访问特定范围,我们就允许第三方站点调用我们的 API。

我认为另一个用例将使用授权代码流;客户端会请求这个,以便它可以自动登录(很像使用 Facebook 登录 - 但使用 X 公司登录)或者如果登录我们的网站则已经登录。

对于这些场景的任何帮助将不胜感激。

4

1 回答 1

1

我认为在不更改现有登录名的情况下无法将您的应用程序切换到 OAuth。我建议您使用带有自定义用户存储的身份服务器(https://identityserver.github.io/Documentation/docsv2/advanced/userService.html)来使用您当前的用户数据库。这样,身份服务器将使用您现有的登录帐户。

然后,您可以使用身份服务器通过 OAuth 保护您的 API。您可能还需要更改当前应用调用 API 的方式。这意味着当前应用程序的用户将被重定向到身份服务器的登录页面。您可以使用自定义视图标记您的登录页面,使其看起来类似于当前登录页面 ( https://identityserver.github.io/Documentation/docsv2/advanced/customizingViews.html )

于 2015-08-21T08:59:58.860 回答