我正在使用 ASP.NET 5/CoreCLR 构建一个 WebAPI 项目。我已经实现了 Identity 3,效果很好。我计划允许用户从浏览器或应用程序(移动设备或 Kodi 或 foobar2000 等第三方)使用 WebAPI。
我想只允许来自浏览器而不是来自第三方的“管理”帐户任务(更改密码、删除内容等)。应用程序应该只能访问有限数量的控制器或操作。最重要的是,我想让用户更容易进行身份验证。我不希望他们将登录名和密码放在应用程序中(因为这些凭据允许对他们的帐户执行管理任务)。理想情况下,我想添加一个“第三方应用程序”身份验证。由于这些操作不会很敏感,我正在考虑提供生成“API 密钥”的能力,这会很短。
我正在考虑一个工作流程,用户可以从浏览器转到他们的帐户页面,单击“生成第三方凭据”,然后从第三方应用程序中获取一个 6 或 8 个字符长的字符串。稍后我可能会应用一些 HMAC。
我想知道的是,在身份 3 之上实现它的“正确”(概念上)方法是什么。例如,是否有可能创建与用户绑定的身份声明?