Azure 上的 Python 应用的标识和访问管理

在 Azure 中,用于 Python 应用程序的标识和访问管理(IAM)涉及两个关键概念:

  • 身份验证:验证用户、组、服务或应用程序的标识
  • 授权:确定该标识可以在 Azure 资源上执行的操作

Azure 提供了多个 IAM 选项,以满足应用程序的安全要求。 本文包含基本资源的链接,可帮助你入门。

若要了解详细信息,请参阅 标识和访问管理建议

无密码连接

尽可能使用托管标识来简化标识管理和增强安全性。 托管标识支持无密码身份验证,无需在代码或环境变量中嵌入敏感凭据(例如密码或客户端机密)。 在 Azure 服务中,诸如应用服务、Azure Functions 和 Azure 容器应用都支持托管标识。 它们允许应用程序向 Azure 服务进行身份验证,而无需管理凭据。

以下资源演示如何通过 DefaultAzureCredential 通过无密码身份验证使用用于 Python 的 Azure SDK。 DefaultAzureCredential 非常适合在 Azure 中运行的大多数应用程序,因为它通过以安全智能顺序链接多个凭据类型,无缝地支持本地开发和生产环境。

服务连接器

Python 应用程序中常用的许多 Azure 资源都支持 服务连接器。 服务连接器简化了在 Azure 服务之间配置安全连接的过程。 它自动设置计算服务(如应用服务或容器应用)与依赖服务(例如 Azure 存储、Azure SQL 或 Cosmos DB)之间的身份验证、网络访问和连接字符串。 这减少了手动步骤,有助于强制实施最佳做法(例如使用托管标识和专用终结点),并提高部署一致性和安全性。

Key Vault(密钥保管库)

使用 Azure Key Vault 等密钥管理解决方案可以更好地控制机密和凭据,尽管它增加了管理复杂性。

用于在应用中登录用户的身份验证和标识

可以开发 Python 应用程序,允许用户使用Microsoft标识(如 Azure AD 帐户)或外部社交帐户(如 Google 或 Facebook)登录。 进行身份验证后,你的应用可以授权用户访问其自己的 API 或Microsoft API(如 Microsoft Graph),以与用户配置文件、日历和电子邮件等资源进行交互。