首页 > 解决方案 > 如何在 Azure 中处理 API 和客户端之间的身份验证

问题描述

我不太确定该怎么称呼它,但基本上我有一个服务应用程序,它只提供一个 API,同时偶尔在后台调用外部 API 以保持数据更新。除了对外部 API 进行身份验证外,此应用程序没有其他身份验证。

然后,我有一个前端应用程序,它使用服务应用程序的 API 来获取数据并将其显示给用户,并且可以选择修改一些数据。此应用设置为针对 Azure AD 进行身份验证,并设置了应用角色以限制对各个部分的访问。

我将如何保护服务应用程序 API,以便只提供来自前端应用程序的调用,而其他一切都被 401 拒绝?

标签: c#azureauthenticationauthorization

解决方案


可以通过将 OAuth 与 Azure AD 结合使用来保护 API。以下概述可以帮助您解决方案:

  1. 在 Azure AD 中注册一个应用程序来表示 API。参考

基本上在这一步中,您将确保只有拥有权限的应用程序(您的应用程序)才能访问 API。

  1. 在 Azure AD 中注册另一个应用程序以表示客户端应用程序。 参考

在此步骤中,您将创建另一个代表您的应用程序的应用程序,以便可以在 API 和您的应用程序之间建立信任。

  1. 在 Azure AD 中授予权限。参考

在此步骤中,您将授予应用访问 API 的权限。

  1. 利用客户端凭据流向您的 API 验证您的应用程序。参考

在此步骤中,您将使用 API 的 Azure AD 应用程序信息配置您的应用程序。使用该信息,您将检索访问令牌,并且您需要将此访问令牌传递给您的 API。


推荐阅读