因此,我们的组织正在使用 ASP.NET MVC 和 Web API 开发一些新的 Web 应用程序。我们决定不使用 Active Directory 进行身份验证/授权,因此看起来带有实体框架的 ASP.NET 身份可能会起作用。
查看数据库架构,我没有看到应用程序表,因此我们可以拥有一个用于用户凭据和应用程序访问的中央存储库。这是索赔的地方吗?那看起来怎么样?用户->应用程序->角色->权限
此外,我们的目标之一是为用户提供单点登录。新的不记名代币可以实现这一点吗?
感谢您的任何帮助,您可以提供
看看这个教程。它展示了如何使用 Web API 实现 ASP.NET Identity:
http://bitoftech.net/2015/01/21/asp-net-identity-2-with-asp-net-web-api-2-accounts-management/
至于处理多个应用程序。我想到的两种方法是:
- 附加一个
AppId
给所有用户名
- Add an
AppId
列至AspNetUsers
表,源自UserStore
并重新实施Find
基于方法,因此查询考虑到AppId
对于#1,当应用程序想要创建新用户时,它会向 WebApi 发送一个请求,其中包含新用户信息和AppId
。然后 WebApi 将连接UserName
and AppId
创建将写入数据库的完整用户名。所以,如果应用1234
想要使用用户名创建一个用户myuser
,然后 WebApi 将使用用户名创建一个新用户myuser_1234
。从那时起,当查询数据库时,您将首先采取UserName
and AppId
从请求中连接它们,然后查询数据库。
如果另一个应用程序9900
想要创建一个myuser
,那么最终写入数据库的用户名将是myuser_9900
.
您可能希望将应用程序详细信息存储在数据库中,并针对每个请求验证AppId
以确保您在处理其请求之前识别该应用程序。
我没有考虑太多步骤#2,所以这只是一个建议。
如果您想在多个应用程序之间共享用户凭据,那么您可能可以忽略上述内容,使用标准功能,让所有应用程序都指向同一数据库,从而允许所有应用程序访问所有用户,无论哪个应用程序创建了哪个用户。
更新#1:在这种情况下,可以使用不记名令牌,我认为(凭记忆)上面提到的教程系列涉及到这一点以及单个 WebApi 如何为多个应用程序提供令牌。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)