如何防止直接访问 Azure 应用服务中托管的 API

2023-11-29

我有一个托管在 Azure 应用服务中的后端 API。我想使用 Azure API 管理作为此后端 API 的前端,并已在 Azure 中成功配置它。我已将 API 管理配置为在访问此后端 API 时使用 OAuth,这在客户端通过 Azure API 管理端点访问 API 时起作用,但如何防止人们直接访问后端 API 端点,以便仅来自 API 管理端点的调用允许吗?


有几种不同安全级别的选项:

  1. 共享秘密 - 在 APIM 中设置具有特定值的特定标头,并在后端检查该值。
  2. 托管身份 - 您可以在 APIM 服务中启用托管身份,并将其令牌发送到您的后端,您可以在其中验证它。
  3. IP 过滤器 - 检查 APIM IP 作为后端的源。
  4. 客户端证书身份验证 - 将客户端证书身份验证上传到 APIM 并将其附加到后端的每个请求。在后端检查该证书。
  5. VNET - 将 APIM 和您的后端放入同一个 VNET 中并阻止从外部到后端的访问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止直接访问 Azure 应用服务中托管的 API 的相关文章

随机推荐

  • delphi中的sha1校验和

    我用delphi编写了以下代码 with TIdHashMessageDigest5 Create do begin st2 Position 0 Digest HashValue st2 SetLength Hash 16 Move Di
  • 如何为python 2.7安装tensorflow?

    我使用conda在windows 10环境中安装了python 2 7 根据tensorflow的文档 它只支持版本3及以上 有没有办法在保留 python 2 7 版本的同时安装tensorflow TensorFlow 在 Window
  • AndroidrelativeLayout fill_parent 在具有不同行高的 ListView 中出现意外行为

    我目前正在对项目进行一个小更新 并且在列表视图中遇到相对布局和填充父级的问题 我试图在每行的两个部分之间插入一个分隔符 就像默认拨号器的呼叫日志中的分隔符一样 我查看了 Android 源代码以了解他们是如何做到的 但在复制他们的解决方案时
  • 谷歌地图以及当不包含该 php 页面时如何将变量从 php 页面传递到另一个页面

    我正在研究这个例子 将 PHP MySQL 与 Google 地图结合使用 https developers google com maps articles phpsqlajax v3 我知道这个教程之前已经介绍过很多了 但我找不到我正在
  • python 只将第一个字母大写

    我知道 capitalize 将字符串的第一个字母大写 但是如果第一个字符是整数怎么办 this 1bob 5sandy to this 1Bob 5Sandy 只是因为没有其他人提到过 gt gt gt bob title Bob gt
  • Woocommerce 只读账单字段

    我有一些电子商务网站 其中客户帐单地址是在后端预定义的 我需要将 帐单地址 字段设置为 只读 以避免客户替换那里的信息 但我不知道如何 在哪里做到这一点 是否可以 将以下代码放入主题的 function php 文件中 add action
  • TCPClient 异常的新实例[重复]

    这个问题在这里已经有答案了 几天前我问过类似的问题 那时 我正在尝试使用套接字 目前 我正在使用 TCPClient 来为我完成脏套接字工作 我使用的是 Windows 7 和 Visual studios 2013 Professiona
  • 将 GSL 与 Xcode 集成

    我正在尝试让 Xcode 5 1 1 找到 GSL 的标头 我理想的解决方案是允许我在未来的所有项目中访问这些标头 而无需额外的工作 如果愿意 可以自动访问 大多数说明似乎都说在项目的 构建设置 gt 搜索路径 部分下添加库路径 但是 我的
  • 在纱线集群上运行时,Spark Hive 报告 pyspark.sql.utils.AnalysisException: u'Table not found: XXX'

    我正在尝试在 Cloud 4 2 Enterprise 上的 BigInsights 上运行 pyspark 脚本来访问 Hive 表 首先我创建配置单元表 biadmin bi4c xxxxx mastermanager hive hiv
  • PHP 上的 AES256 字符串加密和 iPhone 上的解密

    我的 php 代码中有这个 iv size mcrypt get iv size MCRYPT RIJNDAEL 256 MCRYPT MODE ECB iv mcrypt create iv iv size MCRYPT RAND key
  • 如何从android中的本地电话簿获取联系人

    我想在列表中显示所有本机联系人 并让用户将列表中的联系人 多个联系人 添加到我的应用程序数据库中 如何做到这一点 任何人都可以给我想法或分享一些代码 提前致谢 我在 Android 2 1 上使用了这段代码 它会拉下任何拥有电话号码 由 S
  • 如何轻松迭代“strings.xml”资源文件中的所有字符串?

    我创建了一个使用 TTS 引擎向用户发送反馈的应用程序 为了提高性能 我使用了synthesizeToFile and addSpeech方法 但要合成的文本字符串位于strings xml文件 因此我必须为 TTS 引擎说出的每个字符串调
  • “django 不支持从方法到十进制的转换”错误

    因此 我正在尝试计算下面提到的参数的咖啡价格 但是 每次我尝试调用 Coffeeprice 方法时 它都会给我一个conversion from method to Decimal is not supported error 我的视图和模
  • 如何从字符串中删除多个换行符

    给定一个字符串 我需要检查是否有多个换行符 n 如果有的话我需要将它们转换为一个换行符 你能给我看一下执行此操作的代码吗 谢谢 try this s s replaceAll r n 2 1
  • GCM CCS 上游消息是否会强制重新连接到 GCM 网络?

    我遇到了一些问题 GCM 推送通知无法在 Android 设备上正确到达 经过几天的研究 我发现 Android 设备使用心跳来保持与 GCM 服务的连接 遗憾的是 心跳似乎太高 因此 Android 设备可能 但并非总是 失去与 GCM
  • 完成另一个活动的活动[重复]

    这个问题在这里已经有答案了 假设我有 3 个活动 A B 和 C A 导致 B B 再导致 C 我希望能够在 A 和 B 之间来回移动 但我希望一旦 C 开始就完成 A 和 B 我了解如何通过意图启动 C 时关闭 B 但是当 C 启动时如何
  • 二维数组声明 - Objective C

    有没有办法分两步声明一个二维整数数组 我的范围有问题 这就是我正在尝试做的 I know Java so this is an example of what I am trying to replicate int Array Array
  • 将 Java Applet 嵌入到 .html 文件中

    我在将小程序嵌入网页时遇到问题 我认为我做得不对 我的 html 文件与 class 文件位于同一目录中 我的主要方法在 CardApp 类中 这是我的html代码 让小程序在多种浏览器上运行是非常困难的 早期标签没有得到适当的标准化 因此
  • 要设置哪些管理员角色设置才能访问该域的 Google Classroom API?

    我们正在尝试创建一个单独的管理员角色来分配给用户 以便能够调用 Google Classroom API 域 如果我们将它们设置为 超级管理员 它可以工作 但我们不想授予这些用户超级管理员权限 有人知道任何指南或设置吗 Answer 除此以
  • 如何防止直接访问 Azure 应用服务中托管的 API

    我有一个托管在 Azure 应用服务中的后端 API 我想使用 Azure API 管理作为此后端 API 的前端 并已在 Azure 中成功配置它 我已将 API 管理配置为在访问此后端 API 时使用 OAuth 这在客户端通过 Azu