Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET核心WebApi身份验证&;通过Azure授权_.net_Azure_Asp.net Core_Asp.net Web Api - Fatal编程技术网

.NET核心WebApi身份验证&;通过Azure授权

.NET核心WebApi身份验证&;通过Azure授权,.net,azure,asp.net-core,asp.net-web-api,.net,Azure,Asp.net Core,Asp.net Web Api,我正在寻找用Azure验证我的.NET核心API的最佳方法。 API应仅可供具有有效密钥的人员或其他应用程序访问 我需要能够做到以下几点: 在Azure中添加一个新令牌,供客户/应用程序访问API 设置令牌的激活和过期日期(或启用和禁用) 在.NET Core中,使用[Authorize]属性来授权用户访问端点 用Azure实现这一点的最佳解决方案是什么 我正在考虑Azure Key Vault,但我不知道如何在Azure Key Vault中使用[Authorize]属性 或 还有其他解决

我正在寻找用Azure验证我的.NET核心API的最佳方法。 API应仅可供具有有效密钥的人员或其他应用程序访问

我需要能够做到以下几点:

  • 在Azure中添加一个新令牌,供客户/应用程序访问API
  • 设置令牌的激活和过期日期(或启用和禁用)
  • 在.NET Core中,使用[Authorize]属性来授权用户访问端点
用Azure实现这一点的最佳解决方案是什么

我正在考虑Azure Key Vault
,但我不知道如何在Azure Key Vault中使用[Authorize]属性

还有其他解决办法吗

谢谢大家!

我在考虑Azure Key Vault,但我不知道如何在Azure Key Vault中使用[Authorize]属性

您不能使用Azure key vault对您的核心webapi进行身份验证。因为它是一种安全存储和访问机密的工具。机密是您希望严格控制访问的任何内容,例如API密钥、密码或证书

还有其他解决办法吗

在ASP.NET Core中,您可以使用Microsoft identity platform和Azure Active Directory对您的webapi进行身份验证和授权


您可以参考这一点,ASP.NET Web应用程序使用OpenID连接中间件和Active Directory身份验证库(ADAL.NET)使用OAuth 2.0协议为登录用户获取JWT承载令牌。承载令牌被传递到web API,web API使用JWT承载认证中间件验证令牌并授权用户。

Ok,那么它是如何工作的呢?我定义了一个应该可以访问API的用户/应用程序,然后Azure为我生成了一个Jwt令牌,我可以将该令牌提供给该用户/应用程序,他必须在每个请求中提供该令牌?您使用客户端应用程序获取Jwt令牌。并使用令牌对核心api进行身份验证。但是客户端应用程序应该有一个共享令牌(我将向他提供一个令牌)。当您使用客户端应用程序(如控制台应用程序)来获取jwt令牌时,这是一个REST API。