我是Web服务的新手,正在使用.NET Web API 2创建HTTP服务。
服务的消费者将是其他应用程序,但在未来我预见到使用它们的Web应用程序(浏览器,移动应用程序)。这些服务只是向消费者提供数据(没有创建/更新/删除)。
所有应用程序(包括API)都位于我们的企业内部网上。什么都没有外表。
我被告知要对服务使用集成Windows身份验证。是否可以在同一服务上使用API密钥来验证正在进行呼叫的应用程序?
我甚至不确定这样做是否有意义。消费应用程序(即在服务器上运行的可执行文件)可以发送帐户信息吗?我的想法是不需要Windows身份验证,令牌认证就足够了。其他人告诉我要同时使用它们。我不确定这是否可能,并且没有找到任何显示我的信息。
答案 0 :(得分:2)
API密钥是传递给服务接口的参数,因此可以在后端传递任何类型的auth。
但通常,api密钥用于确定是否允许用户使用特定的API。例如,如果只允许具有Windows帐户的用户子集使用api,那么这可能是有意义的,因为即使他们可以使用他们的Windows帐户进行身份验证,他们仍然可能被确定为未经授权他们没有传递有效的授权密钥。
也就是说,您也可以使用某种策略执行相同的操作,例如,检查用户是否具有调用api方法的正确角色。当你通过互联网让人们访问api时,它会更有意义。