通过Azure的.NET Core WebApi身份验证和授权

时间:2020-04-23 10:09:06

标签: .net azure asp.net-core asp.net-web-api

我正在寻找通过Azure验证我的.NET Core API的最佳方法。 只有拥有有效密钥的人员或其他应用程序才能访问该API。

我需要具备以下条件:

  • 在Azure内添加新令牌以便客户/应用程序访问API
  • 设置令牌(或启用和禁用)的激活和到期日期
  • 在.NET Core中,使用[ Authorize ]属性授权用户访问终结点

使用Azure做到这一点的最佳解决方案是什么?

我当时在考虑 Azure Key Vaults ,但我不知道如何将Azure Vault Vault中的[Authorize]属性使用?

OR

还有其他解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我当时在考虑Azure密钥保管库,但是我不知道如何将[Authorize]属性与Azure密钥保管库一起使用?

您不能使用Azure密钥库来验证您的核心webapi。因为Azure Key Vault一种用于安全存储和访问机密的工具。秘密就是您想要严格控制访问权限的所有内容,例如API密钥,密码或证书。

还有其他解决方案吗?

在ASP.NET Core中,您可以使用Microsoft身份平台和Azure Active Directory对Webapi进行身份验证和授权。

您可以参考此tutorial,ASP.NET Web应用程序使用OpenID Connect中间件和Active Directory身份验证库(ADAL.NET)来使用登录ID获取JWT承载令牌。 OAuth 2.0协议。承载令牌将传递到Web API,Web API使用JWT承载认证中间件来验证令牌并授权用户。