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.
数据流
- 为了访问应用程序,API客户端通过提供用户名和密码等凭据进行身份验证。在此解决方案中,IdP是Azure AD B2C,但您可以使用不同的解决方案。
- 身份验证请求通过Azure Front Door发送到Azure AD B2C,Azure AD B2C配置有用于登录的自定义域。Azure AD B2C对用户进行身份验证,并将JSON Web令牌(JWT)承载令牌返回给用户。
- 客户端触发访问后端API的事件。此事件可以是单击web应用程序或移动设备上的按钮,也可以是直接调用后端API的端点。
- 请求通过Azure Front Door,其后端映射到API管理的公共端点。API管理拦截请求,并使用其validate-jwt策略针对Azure AD B2C验证承载令牌。如果令牌无效,API管理会通过使用401代码进行响应来拒绝请求。
- 如果令牌有效,API管理将请求转发到适当的后端API。
- 该图显示了在三种环境中运行的后端API:
- 应用程序服务环境
- 功能应用程序
- Azure Kubernetes服务(AKS)
如果在内部部署和混合云环境中运行的API和API管理之间建立了网络连接,则这些API也可以与API管理集成。
组件
- Azure虚拟网络提供Azure资源(如虚拟机)之间的安全通信。它还提供对互联网和内部网络的访问。
- Azure Front Door是一种现代云内容交付网络(CDN)服务,为web内容和应用程序提供高性能、可扩展性和安全的用户体验。它提供了第7层功能,如SSL卸载、基于路径的路由、快速故障切换和缓存,以提高应用程序的性能和可用性。
- Azure应用程序网关是一个第7层负载均衡器,用于管理web应用程序的流量。
- API管理是向外部和内部客户发布API的交钥匙解决方案。它提供了对管理面向公众的API有用的功能,包括速率限制、IP限制和使用Microsoft Entra ID或其他IdP的身份验证。API管理不执行任何负载平衡,因此您应该将其与负载平衡器(如应用网关或反向代理)一起使用。有关将API管理与应用程序网关一起使用的信息,请参阅将API管理集成到具有应用程序网关的内部虚拟网络中。
- Azure AD B2C是一种基于Microsoft Entra ID的高可用性全球身份管理服务,适用于面向消费者的应用程序。它可以扩展到数亿个身份。这是该解决方案使用的IdP。它在成功身份验证时返回承载令牌(JWT)。
- Azure应用程序服务是一种用于构建、部署和扩展web应用程序的完全托管服务。您可以使用构建应用程序。NET。NET Core、Node.js、Java、Python或PHP。这些应用程序可以在容器中运行,也可以在Windows或Linux上运行。在大型机迁移中,前端屏幕或web界面可以编码为基于HTTP的RESTAPI。它们可以像在大型机应用程序中一样被隔离,并且可以是无状态的,以协调基于微服务的系统。
- Azure应用程序服务环境是应用程序服务的单租户部署。它能够在一个完全隔离和专用的环境中托管应用程序,以安全地大规模运行应用程序服务应用程序。
- Azure Kubernetes Service(AKS)是一个由Microsoft管理的Kubernets环境,用于运行容器化应用程序。
- Azure函数是一个事件驱动的无服务器计算平台。Azure功能在云中按需大规模运行。
场景详细信息
后端API是应用程序和数据的入口点,应该保护它免受恶意应用程序和用户的攻击。在这里描述的架构中,Azure API管理充当客户端和后端API之间的网关,并在许多方面帮助保护API,包括:
- 令牌验证
- 基于要求的授权
- SSL证书验证
- IP限制
- 节流
- 速率限制
- 请求和响应验证
您可以使用来自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
- Enable custom domains for Azure Active Directory B2C
- Azure Active Directory B2C: Custom CIAM User Journeys
- Resilience through developer best practices
Related resources
- 登录 发表评论
- 5 次浏览
发布日期
星期六, June 8, 2024 - 11:39
最后修改
星期六, June 8, 2024 - 13:08
Article
最新内容
- 2 days 20 hours ago
- 2 days 22 hours ago
- 2 days 22 hours ago
- 5 days 14 hours ago
- 5 days 21 hours ago
- 5 days 22 hours ago
- 5 days 22 hours ago
- 5 days 22 hours ago
- 1 week 3 days ago
- 1 week 3 days ago