微软身份平台Python Web应用教程
本教程将指导您了解并使用Azure-Samples/ms-identity-python-webapp
这一开源项目,这是一个通过微软身份平台保护并调用Microsoft Graph的Python Web应用示例。我们将详细解析其目录结构、启动文件以及配置文件的关键信息。
1. 目录结构及介绍
此项目的目录设计旨在支持多场景的应用开发。以下是主要的目录和文件结构说明:
.
├── AppCreationScripts # 应用注册脚本
├── env # 环境配置模板
│ ├── sample.* # 不同场景(如Microsoft Entra ID, AAD B2C等)下的环境变量模板
├── app.py # 核心应用逻辑
├── app_config.py # 应用配置设置
├── auto-config.json # 自动配置信息
├── requirements.txt # 项目依赖列表
├── README.md # 项目简介和快速入门指南
├── CODE_OF_CONDUCT.md # 开源行为准则
├── LICENSE # 许可证文件(MIT)
└── SECURITY.md # 安全指引
- AppCreationScripts: 提供应用注册辅助脚本。
- env: 存放各种环境配置模板,用于不同身份认证场景。
- app.py: 应用的主要入口文件,实现Web应用的基本逻辑。
- app_config.py: 包含应用的配置信息,如会话管理方式等。
- auto-config.json: 可能用于自动配置某些应用设置。
- requirements.txt: 列出了运行此应用所需的Python库。
- 文档文件:提供了项目使用的规则、许可和安全相关的说明。
2. 启动文件介绍
app.py 是程序的核心执行文件,它定义了Flask应用实例以及路由。该文件负责处理用户的请求、登录、注销以及调用API等功能。在实现过程中,它可能利用app_config.py
中设定的配置来初始化应用,并根据路由映射不同的视图函数,确保应用程序能够正确地处理用户交互和数据请求。
3. 配置文件介绍
- app_config.py: 这是应用级别的配置文件,关键参数包括会话类型(
SESSION_TYPE
)等。根据应用需求,您可以在此文件中定制化配置,比如更改默认的会话存储方式或添加特定的配置项。 - env 文件夹中的模板: 提供了针对不同应用场景(如Microsoft Entra ID、外部ID、自定义域、AAD B2C等)的环境变量模板。每个
.env
文件代表了一个特定认证场景下的配置范例,开发者需复制相应的模板,并根据自身应用的需求修改其中的客户端ID、密钥等敏感信息。这些环境变量对应用的认证流程至关重要,务必在本地环境下正确配置而避免提交到版本控制系统中。
配置步骤简述
- 选择或创建适合您的应用场景的
.env
文件。 - 修改环境变量以匹配你的应用程序注册信息。
- 使用pip安装必要的依赖,命令行执行
pip install -r requirements.txt
。 - 最后,运行
flask run -h localhost
来启动应用,记得调整端口与你的注册配置相匹配。
通过以上步骤,您将能够成功配置并运行这个基于Python的Web应用,享受微软身份平台提供的强大身份验证和授权功能。