跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

category

解决方案思路
这篇文章是一个解决方案。如果您希望我们用更多信息来扩展内容,例如潜在的用例、替代服务、实施注意事项或定价指导。

在本文中,我们将研究一种架构,该架构通过使用API管理和Azure Active Directory(Azure AD)B2C来验证承载令牌,从而保护Azure和其他环境中的后端API。

架构


通过使用API管理和Azure AD B2C验证承载令牌来保护后端API的体系结构图。API可以在Azure或其他环境中。

Download a Visio file of this architecture.

数据流

  1. 为了访问应用程序,API客户端通过提供用户名和密码等凭据进行身份验证。在此解决方案中,IdP是Azure AD B2C,但您可以使用不同的解决方案。
  2. 身份验证请求通过Azure Front Door发送到Azure AD B2C,Azure AD B2C配置有用于登录的自定义域。Azure AD B2C对用户进行身份验证,并将JSON Web令牌(JWT)承载令牌返回给用户。
  3. 客户端触发访问后端API的事件。此事件可以是单击web应用程序或移动设备上的按钮,也可以是直接调用后端API的端点。
  4. 请求通过Azure Front Door,其后端映射到API管理的公共端点。API管理拦截请求,并使用其validate-jwt策略针对Azure AD B2C验证承载令牌。如果令牌无效,API管理会通过使用401代码进行响应来拒绝请求。
  5. 如果令牌有效,API管理将请求转发到适当的后端API。
  6. 该图显示了在三种环境中运行的后端API:
    1. 应用程序服务环境
    2. 功能应用程序
    3. Azure Kubernetes服务(AKS)


如果在内部部署和混合云环境中运行的API和API管理之间建立了网络连接,则这些API也可以与API管理集成。

组件

  1. Azure虚拟网络提供Azure资源(如虚拟机)之间的安全通信。它还提供对互联网和内部网络的访问。
  2. Azure Front Door是一种现代云内容交付网络(CDN)服务,为web内容和应用程序提供高性能、可扩展性和安全的用户体验。它提供了第7层功能,如SSL卸载、基于路径的路由、快速故障切换和缓存,以提高应用程序的性能和可用性。
  3. Azure应用程序网关是一个第7层负载均衡器,用于管理web应用程序的流量。
  4. API管理是向外部和内部客户发布API的交钥匙解决方案。它提供了对管理面向公众的API有用的功能,包括速率限制、IP限制和使用Microsoft Entra ID或其他IdP的身份验证。API管理不执行任何负载平衡,因此您应该将其与负载平衡器(如应用网关或反向代理)一起使用。有关将API管理与应用程序网关一起使用的信息,请参阅将API管理集成到具有应用程序网关的内部虚拟网络中。
  5. Azure AD B2C是一种基于Microsoft Entra ID的高可用性全球身份管理服务,适用于面向消费者的应用程序。它可以扩展到数亿个身份。这是该解决方案使用的IdP。它在成功身份验证时返回承载令牌(JWT)。
  6. Azure应用程序服务是一种用于构建、部署和扩展web应用程序的完全托管服务。您可以使用构建应用程序。NET。NET Core、Node.js、Java、Python或PHP。这些应用程序可以在容器中运行,也可以在Windows或Linux上运行。在大型机迁移中,前端屏幕或web界面可以编码为基于HTTP的RESTAPI。它们可以像在大型机应用程序中一样被隔离,并且可以是无状态的,以协调基于微服务的系统。
  7. Azure应用程序服务环境是应用程序服务的单租户部署。它能够在一个完全隔离和专用的环境中托管应用程序,以安全地大规模运行应用程序服务应用程序。
  8. Azure Kubernetes Service(AKS)是一个由Microsoft管理的Kubernets环境,用于运行容器化应用程序。
  9. Azure函数是一个事件驱动的无服务器计算平台。Azure功能在云中按需大规模运行。
     

场景详细信息


后端API是应用程序和数据的入口点,应该保护它免受恶意应用程序和用户的攻击。在这里描述的架构中,Azure API管理充当客户端和后端API之间的网关,并在许多方面帮助保护API,包括:

  1. 令牌验证
  2. 基于要求的授权
  3. SSL证书验证
  4. IP限制
  5. 节流
  6. 速率限制
  7. 请求和响应验证


您可以使用来自Microsoft或其他供应商的任何OpenID Connect身份提供程序(IdP)对客户端进行身份验证。此解决方案使用Azure AD B2C。如果您使用OpenID Connect以外的东西进行身份验证,在大多数情况下,您可以使用Azure AD B2C进行联合。有关详细信息,请参阅向Azure Active Directory B2C租户添加身份提供程序。

潜在用例


此体系结构满足了寻求以下目标的组织的需求:

  • 保护后端API免受未经授权的用户的攻击。
  • 使用API管理功能,如节流、速率限制和IP过滤,以防止API过载。
  • 使用Azure AD B2C与OpenID Connect进行身份验证,或与其他IdP进行联合,包括:
    • 第三方IdP,如Ping Identity and Computer Associates(CA)SiteMinder。
    • 脸书、微软账户、谷歌、推特。
    • 支持OAuth 1.0、OAuth 2.0或SAML协议的IdP。

Next steps

本文地址
最后修改
星期六, June 8, 2024 - 13:08
Article