c# - 如何在 Azure 中处理 API 和客户端之间的身份验证
问题描述
我不太确定该怎么称呼它,但基本上我有一个服务应用程序,它只提供一个 API,同时偶尔在后台调用外部 API 以保持数据更新。除了对外部 API 进行身份验证外,此应用程序没有其他身份验证。
然后,我有一个前端应用程序,它使用服务应用程序的 API 来获取数据并将其显示给用户,并且可以选择修改一些数据。此应用设置为针对 Azure AD 进行身份验证,并设置了应用角色以限制对各个部分的访问。
我将如何保护服务应用程序 API,以便只提供来自前端应用程序的调用,而其他一切都被 401 拒绝?
解决方案
可以通过将 OAuth 与 Azure AD 结合使用来保护 API。以下概述可以帮助您解决方案:
- 在 Azure AD 中注册一个应用程序来表示 API。参考
基本上在这一步中,您将确保只有拥有权限的应用程序(您的应用程序)才能访问 API。
- 在 Azure AD 中注册另一个应用程序以表示客户端应用程序。 参考。
在此步骤中,您将创建另一个代表您的应用程序的应用程序,以便可以在 API 和您的应用程序之间建立信任。
- 在 Azure AD 中授予权限。参考。
在此步骤中,您将授予应用访问 API 的权限。
- 利用客户端凭据流向您的 API 验证您的应用程序。参考。
在此步骤中,您将使用 API 的 Azure AD 应用程序信息配置您的应用程序。使用该信息,您将检索访问令牌,并且您需要将此访问令牌传递给您的 API。
推荐阅读
- ios - 应用程序与 iOS 模拟器上的数据库通信,但不在设备上
- vba - word文档的超链接在哪里?
- android - 是否可以在 TextInputLayout 中为错误标签保留空间?
- python - 如何从 Microsoft Visual Studio Code 中的 Python 交互选项卡保存图像
- google-sheets - 如何使行中的单元格显示该行中最近编辑的日期
- javascript - 如何为未重置的测验存储javascript计时器倒计时
- python - 安装 pygame python setup.py egg_info 时出错
- r - 使用重复的列值排列值
- flutter - 在 Flutter 中启用或禁用检测模拟位置
- .net - 如何使用 .NET 在工作站上验证 JWT