更新:2026年2月26日
nginxにmore_clear_headersのモジュールを組み込みエラー・ページを置き換えることにより、WWW-Authenticateヘッダーを置き換えることができました。
- Oracle APEXの実行環境にnginxによるリバース・プロキシを構成する - Oracle Linux 10編
- Oracle APEXの実行環境にnginxによるリバース・プロキシを構成する - Ubuntu 24.04編
ORDSの/ords/apexdev/sampleserver/mcp(または他のMCPサーバーを実装したORDS RESTサービスのURI)が401を返すときに、WWW-Authenticateヘッダーを置き換える設定は以下になります。
more_clear_headersを呼び出しWWW-Authenticateヘッダーを削除した後、add_headerでresource_metadataを含めたWWW-Authenticateヘッダーを追加しています。
このファイルを/etc/nginx/default.d/40-www-auth.confとして配置します。
MCPを実装しているORDS RESTサービスを呼び出す設定は以下になります。
/etc/nginx/default.d/30-mcp.confとして配置します。
Autonomous Databaseでは、以下を/etc/nginx/default.d/40-mcp-adb.confとして配置します。Autonomous Databaseではプライベート・エンドポイントまたは顧客管理ORDSを構成していないと、接続先ホスト名を変更できません。そのため、MCPを実装したORDS RESTサービスに限定してホスト名を置き換えています。
ords_upstream_hostにAutonomous Datatabaseのホスト名を設定します。
Oracle Linux 10のようにSELinuxが有効になっている場合は、ファイルの再ラベルが必要な場合があります。その後にnginxを再起動します。
restorecon -Rv /etc/nginx/
systemctl restart nginx
Bearer realm="Oracle REST Data Services", error="invalid_token"
Bearer resource_metadata="https://ホスト名/.well-known/oauth-protected-resource/ords/apexdev/sampleserver/mcp"
[root@ordsmcp ~]# restorecon -Rv /etc/nginx/
Relabeled /etc/nginx/default.d/30-mcp.conf from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_config_t:s0
Relabeled /etc/nginx/default.d/40-www-auth.conf from unconfined_u:object_r:admin_home_t:s0 to unconfined_u:object_r:httpd_config_t:s0
[root@ordsmcp ~]# systemctl restart nginx
[root@ordsmcp ~]#
proxy_intercept_errorsを無効にしていると、WWW-Authenticateヘッダーには以下の値が返されます。
proxy_intercept_errorsを有効にすると、WWW-Authenticateヘッダーに、resource_metadataを含めることができます。。
今回の記事は以上です。
完