.net WebApi身份验证如何适用于所有客户端?

.net WebApi身份验证如何适用于所有客户端?,.net,wcf,asp.net-web-api,restful-architecture,.net,Wcf,Asp.net Web Api,Restful Architecture,这是一个非常主观的问题,我搜索了很多地方,但我想知道WebApi身份验证如何工作的真实例子 我在前端使用AngularJS应用程序,现在,我必须连接到WebAPI,但有各种客户端,因此,在WebAPI中对客户端进行身份验证的方式是什么?您将配置一个应用程序作为令牌颁发者,负责创建特定客户端允许的JWT令牌 一个.Net的例子是Identity Server()。它有许多示例向您展示了如何使用不同的客户端类型() 您可以在Identity Server中定义由客户端id、授权类型和“重定向url”

这是一个非常主观的问题,我搜索了很多地方,但我想知道WebApi身份验证如何工作的真实例子


我在前端使用AngularJS应用程序,现在,我必须连接到WebAPI,但有各种客户端,因此,在WebAPI中对客户端进行身份验证的方式是什么?您将配置一个应用程序作为令牌颁发者,负责创建特定客户端允许的JWT令牌

一个.Net的例子是Identity Server()。它有许多示例向您展示了如何使用不同的客户端类型()

您可以在Identity Server中定义由客户端id、授权类型和“重定向url”表示的客户端。Identity Server充当单一登录,因此当应用程序需要访问API时,您可以使用重定向到Identity Server。成功登录后,Identity Server将重定向回您为客户端id注册的“重定向url”,并在哈希片段上将访问令牌发送回客户端

在单页应用程序中,存在一个库来帮助实现这一点。获得访问令牌后,可以使用授权头将其发送到web api

授权:承载{jwt令牌}

API将得到保护,使用一个可用的nuget包来实现这一点。API负责确保发送给它的JWT令牌由预期的令牌颁发者签名,面向相关受众,并由正确的机构颁发

如果JWT验证通过,则身份验证已成功,然后您可以根据令牌中的声明做出授权决策

这就是基本概念——从发行者处获取令牌,使用授权头发送HTTP请求,使用JWT身份验证锁定API


您可以运行自己的令牌颁发者,例如Identity Server,或者使用类似Azure AAD的东西为您提供此功能。使用AAD启动和运行某些东西非常简单

使用承载令牌。谢谢rawel,但客户端可以在任何地方访问URL,因此,webapi如何进行身份验证。如果您能给我任何链接或参考,将是Greathanks Dylan提供此解决方案