Asp.net 寻找RESTful API的身份验证/模拟策略
我需要在API中允许模拟(“充当”)。因此,具有适当权限的用户可以作为其他用户使用API。我想知道在这个领域是否有一些具体的策略 我可以创建一个端点来开始和结束模拟。开始模拟可能需要获取用户及其权限,并将其加载到内存中以用于当前请求,这非常简单。接下来的请求呢?添加一个指示“模拟用户”的HTTP头是否是一种错误的做法?如果该标头存在,是否使用它对后续请求进行身份验证?使用具有该用户标识的cookie怎么样?还是其他信息Asp.net 寻找RESTful API的身份验证/模拟策略,asp.net,asp.net-mvc-3,rest,Asp.net,Asp.net Mvc 3,Rest,我需要在API中允许模拟(“充当”)。因此,具有适当权限的用户可以作为其他用户使用API。我想知道在这个领域是否有一些具体的策略 我可以创建一个端点来开始和结束模拟。开始模拟可能需要获取用户及其权限,并将其加载到内存中以用于当前请求,这非常简单。接下来的请求呢?添加一个指示“模拟用户”的HTTP头是否是一种错误的做法?如果该标头存在,是否使用它对后续请求进行身份验证?使用具有该用户标识的cookie怎么样?还是其他信息 将模拟用户分配给Thread.CurrentPrincipal是否有额外的好
将模拟用户分配给Thread.CurrentPrincipal是否有额外的好处(假设是.NET impl)?当前的权限和角色实现是自定义的,基本上使用位数组(尽管这在表中,以备将来更改)。HTTP不包括任何对代理凭据/模拟的本机支持,因此,将HTTP基本身份验证与一个自定义头相结合,以指示客户端尝试充当的是哪个其他用户就可以了 然而,我会避免“开始和结束模拟”的想法污染您的API。这意味着必须在API调用之间维护有状态会话知识,这将使服务器端的管理更加困难 我只需要让客户端在每次调用时传递所有必需的信息(它们的cred和模拟主体),并在每次调用资源时验证它们