Python 接入 Azure aad 教程

概述

本文将介绍如何使用 Python 语言接入 Azure Active Directory(AAD)。Azure AAD 是微软提供的一种云身份验证服务,可以用于管理和保护应用程序的身份验证和授权。通过接入 Azure AAD,开发者可以实现用户身份验证、访问权限控制等功能。

下面将详细介绍整个接入过程,包括步骤、代码示例和注释。

接入流程

接入 Azure AAD 的整个流程如下:

步骤 操作
1. 创建 Azure AD 应用程序 使用 Azure 门户创建一个应用程序,获取应用程序的客户端 ID 和客户端机密。
2. 配置应用程序权限 在 Azure AD 应用程序的设置中,为应用程序添加所需的权限。
3. 获取访问令牌 使用应用程序的客户端 ID、客户端机密和 Azure AD 的访问令牌终结点,获取访问令牌。
4. 调用 Azure 资源 使用访问令牌和 Azure 资源的 API 终结点,进行身份验证和授权操作。

下面将逐步介绍每一步的操作和对应的代码。

步骤1:创建 Azure AD 应用程序

首先,你需要在 Azure 门户上创建一个应用程序,以便获取应用程序的客户端 ID 和客户端机密。具体步骤如下:

  1. 登录 Azure 门户(
  2. 进入 Azure AD 服务,选择“应用注册”。
  3. 点击“新注册”按钮,填写应用程序的名称,并选择应用程序支持的帐户类型。
  4. 点击“注册”按钮,系统将为该应用程序生成一个唯一的客户端 ID。
  5. 在“证书和密码”页面,点击“新建客户端密码”按钮,系统将为该应用程序生成一个客户端机密(密码)。

步骤2:配置应用程序权限

在 Azure AD 应用程序的设置中,你需要为应用程序添加所需的权限。具体步骤如下:

  1. 进入 Azure AD 服务,选择“应用注册”,找到你创建的应用程序。
  2. 点击“API 权限”选项卡,然后点击“添加权限”按钮。
  3. 在“请求的权限”页面,选择需要的 API 权限,并点击“添加权限”按钮。
  4. 点击“配置”选项卡,将“重定向 URI”设置为你应用程序的回调地址(用于接收访问令牌)。

步骤3:获取访问令牌

使用应用程序的客户端 ID、客户端机密和 Azure AD 的访问令牌终结点,可以获取访问令牌。具体步骤如下:

import requests

# 请求的参数
token_endpoint = "
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
scope = "YOUR_SCOPE"

# 请求的数据
data = {
    "grant_type": "client_credentials",
    "client_id": client_id,
    "client_secret": client_secret,
    "scope": scope
}

# 发送 POST 请求获取访问令牌
response = requests.post(token_endpoint, data=data)
access_token = response.json()["access_token"]

代码解释:

  • token_endpoint:Azure AD 的访问令牌终结点,其中 {tenant} 需要替换成你的租户 ID 或租户名称。
  • client_id:你创建的应用程序的客户端 ID。
  • client_secret:你创建的应用程序的客户端机密。
  • scope:你需要访问的 Azure 资源的范围。
  • data:POST 请求的数据,包括授权类型、客户端 ID、客户端机密和范围。
  • requests.post():使用 requests 库发送 POST 请求。
  • response.json()["access_token"]:从响应的 JSON 数据中提取访问令牌