如何在WSO2 APIM中部署需Basic Auth的Python API并配置认证策略
实现WSO2 APIM代理带自身Basic Auth的Python API,并启用WSO2用户Basic Auth认证
1. 发布Python API到WSO2 APIM
- 登录WSO2 APIM管理控制台(Publisher界面),点击Create API选择Design a New API。
- 填写API基本信息(名称、版本、上下文等),进入Endpoint Configuration页面。
- 在Production Endpoints中填入Python API的实际访问URL(例如
http://your-python-api:port/api-path)。
2. 配置前端调用的WSO2用户Basic Auth认证
- 进入API的Security标签页,在Security Schemes区域点击Add Security Scheme。
- 选择Basic Authentication类型,命名(如
WSO2_User_Basic_Auth),勾选Enable,关联WSO2默认的Primary用户存储(即WSO2内置的用户体系)。 - 在API Security部分,将创建好的
WSO2_User_Basic_Auth添加到Applied Security Schemes,保存配置。
3. 配置WSO2转发请求到后端的Basic Auth(Python API自身账号)
这一步是让WSO2在调用你的Python API时自动带上后端要求的认证凭证,有两种常用实现方式:
方式一:直接在Endpoint中配置后端认证
- 返回Endpoint Configuration页面,点击已添加的Production Endpoint旁的Edit按钮。
- 在编辑窗口切换到Advanced标签,找到Authentication部分,选择Basic Authentication。
- 填入Python API要求的用户名和密码,保存后WSO2会自动在转发请求时生成
Authorization: Basic <base64编码的后端账号>请求头。
方式二:用中介流自定义添加认证头
如果需要更灵活的逻辑控制,可通过中介流实现:
- 进入API的Mediation Policies标签页,选择Outflow(WSO2发往后端的请求流程)。
- 添加Script Mediator,输入如下脚本(替换
backend_username和backend_password为实际值):
var username = 'backend_username'; var password = 'backend_password'; var authHeader = 'Basic ' + Base64.encode(username + ':' + password); mc.setHeader('Authorization', authHeader);
- 保存中介流并发布API。
4. 测试验证
- API发布后切换到Developer Portal,订阅该API并使用WSO2用户账号密码发起请求。
- 用curl或Postman调用WSO2 APIM的API端点(例如
https://wso2-apim:8243/api-context/version/path),请求头添加Authorization: Basic <base64编码的WSO2用户名:密码>。 - 验证Python API返回成功响应,说明WSO2完成了前端认证和后端凭证转发的流程。
内容的提问来源于stack exchange,提问作者Vikas Patil
相关产品推荐
相关产品推荐

