1

我正在使用 ASP.NET 5/CoreCLR 构建一个 WebAPI 项目。我已经实现了 Identity 3,效果很好。我计划允许用户从浏览器或应用程序(移动设备或 Kodi 或 foobar2000 等第三方)使用 WebAPI。

我想只允许来自浏览器而不是来自第三方的“管理”帐户任务(更改密码、删除内容等)。应用程序应该只能访问有限数量的控制器或操作。最重要的是,我想让用户更容易进行身份验证。我不希望他们将登录名和密码放在应用程序中(因为这些凭据允许对他们的帐户执行管理任务)。理想情况下,我想添加一个“第三方应用程序”身份验证。由于这些操作不会很敏感,我正在考虑提供生成“API 密钥”的能力,这会很短。

我正在考虑一个工作流程,用户可以从浏览器转到他们的帐户页面,单击“生成第三方凭据”,然后从第三方应用程序中获取一个 6 或 8 个字符长的字符串。稍后我可能会应用一些 HMAC。

我想知道的是,在身份 3 之上实现它的“正确”(概念上)方法是什么。例如,是否有可能创建与用户绑定的身份声明?

4

1 回答 1

0

也许您可以使用两个单独的帐户,一个用于人类用户,第二个用于应用程序用户?比你可以使用Claims-Based Authorization

我正在考虑一个工作流程,用户可以从浏览器转到他们的帐户页面,单击“生成第三方凭据”

在此操作下,您可以为应用创建第二个帐户,并使用声明将它们与用户帐户相关联。

对于您的应用程序,它将是两个不同的身份验证/授权帐户,但从用户的角度来看,它可以是一个帐户。

之后,您就可以清楚而简单地使用ASP.NET5 Authorization解决方案。

于 2016-04-03T12:16:34.987 回答