ORDS API是否支持用户名密码认证?IIS10能否配置基础认证?
基于ORDS和IIS10实现用户名密码基础认证的方案
一、ORDS原生配置基础认证
ORDS本身支持基础认证,无需依赖OAuth2,配置方式如下:
- 启用基础认证:找到ORDS安装目录下的
ords_params.properties配置文件,添加或修改参数:
保存后重启ORDS服务生效。security.basic.auth.enabled=true security.authentication.type=basic - 关联数据库用户权限:ORDS的基础认证会直接验证客户端提交的用户名密码是否为合法的Oracle数据库用户,需确保该用户拥有对应API的访问权限。例如,可通过以下SQL赋予权限:
GRANT ORDADMIN TO your_api_user; -- 或针对特定API授予权限 GRANT EXECUTE ON your_api_module TO your_api_user; - 强制启用HTTPS:基础认证的用户名密码仅经过Base64编码,明文传输风险极高,必须为ORDS配置SSL证书,确保所有请求通过HTTPS传输。
二、IIS10层面配置基础认证
若希望在IIS层统一管控认证,可将ORDS作为后端服务,通过IIS反向代理或直接部署,由IIS处理基础认证:
1. 安装必要组件
在服务器管理器中添加「Web服务器(IIS)」角色,勾选以下组件:
- 安全 -> 基础认证
- 应用程序开发 -> ASP.NET(若需自定义用户验证)
- 应用程序请求路由(ARR) -> 用于反向代理转发请求到ORDS
2. 配置站点认证
- 打开IIS管理器,找到部署ORDS的站点,进入「认证」功能;
- 禁用「匿名认证」,启用「基础认证」;
- 配置用户来源:可选择Windows本地用户、域用户,或通过自定义成员资格提供程序关联Oracle数据库用户(需编写对应适配代码)。
3. 反向代理配置(ORDS独立运行时)
- 打开IIS的「应用程序请求路由」,启用反向代理;
- 添加路由规则,将IIS站点的请求转发到ORDS的服务端口(如默认的8080);
- 确保IIS将认证头信息传递给ORDS,若无需ORDS二次验证,可在ORDS中关闭自身认证,仅由IIS完成校验。
方案对比
- ORDS原生认证:直接绑定Oracle数据库用户,权限管理在数据库内完成,配置简单,适合API权限与数据库用户强关联的场景。
- IIS层面认证:可集成企业域用户体系,统一管控多Web应用的认证策略,适合已有Windows域环境的企业。
内容的提问来源于stack exchange,提问作者JacquesB
相关产品推荐
相关产品推荐

