FastAPI-Azure-Auth 项目教程
1. 项目的目录结构及介绍
FastAPI-Azure-Auth 项目的目录结构如下:
fastapi-azure-auth/
├── fastapi_azure_auth/
│ ├── __init__.py
│ ├── azure_auth.py
│ ├── multi_tenant.py
│ ├── b2c.py
│ ├── exceptions.py
│ ├── openid_config.py
│ ├── utils.py
│ └── ...
├── tests/
│ ├── __init__.py
│ ├── test_azure_auth.py
│ ├── test_multi_tenant.py
│ ├── test_b2c.py
│ └── ...
├── .gitignore
├── LICENSE
├── README.md
├── setup.py
└── ...
目录结构介绍
fastapi_azure_auth/
: 包含项目的主要代码文件。__init__.py
: 包的初始化文件。azure_auth.py
: 实现 Azure AD 认证的主要逻辑。multi_tenant.py
: 实现多租户认证的逻辑。b2c.py
: 实现 Azure AD B2C 认证的逻辑。exceptions.py
: 定义自定义异常。openid_config.py
: 处理 OpenID 配置。utils.py
: 包含一些实用工具函数。
tests/
: 包含项目的测试文件。test_azure_auth.py
: 测试 Azure AD 认证的逻辑。test_multi_tenant.py
: 测试多租户认证的逻辑。test_b2c.py
: 测试 Azure AD B2C 认证的逻辑。
.gitignore
: Git 忽略文件配置。LICENSE
: 项目的许可证文件。README.md
: 项目的说明文档。setup.py
: 项目的安装配置文件。
2. 项目的启动文件介绍
项目的启动文件通常是 main.py
,但在 FastAPI-Azure-Auth 项目中,启动文件可能是一个示例文件,用于演示如何使用该库。以下是一个示例启动文件的内容:
# main.py
from fastapi import FastAPI
from fastapi_azure_auth import SingleTenantAzureAuthorizationCodeBearer
app = FastAPI()
azure_auth = SingleTenantAzureAuthorizationCodeBearer(
app_client_id='your-client-id',
tenant_id='your-tenant-id',
scopes={
'User.Read': 'Read user profile',
}
)
@app.get('/')
async def root():
return {'message': 'Hello World'}
app.include_router(azure_auth.router)
启动文件介绍
from fastapi import FastAPI
: 导入 FastAPI 类。from fastapi_azure_auth import SingleTenantAzureAuthorizationCodeBearer
: 导入 Azure AD 认证类。app = FastAPI()
: 创建 FastAPI 应用实例。azure_auth = SingleTenantAzureAuthorizationCodeBearer(...)
: 配置 Azure AD 认证。@app.get('/')
: 定义一个简单的路由。app.include_router(azure_auth.router)
: 将认证路由包含到应用中。
3. 项目的配置文件介绍
FastAPI-Azure-Auth 项目的配置文件通常是 settings.py
,用于存储应用的配置信息。以下是一个示例配置文件的内容:
# settings.py
import os
# Azure AD 配置
AZURE_CLIENT_ID = os.getenv('AZURE_CLIENT_ID', 'your-default-client-id')
AZURE_TENANT_ID = os.getenv('AZURE_TENANT_ID', 'your-default-tenant-id')
AZURE_CLIENT_SECRET = os.getenv('AZURE_CLIENT_SECRET', 'your-default-client-secret')
# FastAPI 配置
OPENAPI_CLIENT_ID = os.getenv('OPENAPI_CLIENT_ID', 'your-default-openapi-client-id')
配置文件介绍
AZURE_CLIENT_ID
: Azure AD 应用的客户端 ID。AZURE_TENANT_ID
: Azure AD 租户 ID。AZURE_CLIENT_SECRET
: Azure AD 应用的客户端密钥。OPENAPI_CLIENT_ID
: OpenAPI 文档的客户端 ID。
以上是 FastAPI-Azure-Auth 项目的目录结构、启动文件和配置文件的介绍。希望这些信息能帮助你更好地理解和使用该项目。