Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

`nextcloud:32` (Trixie/Debian 13 base) — Guzzle/libcurl returns HTTP 404 for Microsoft Entra OIDC discovery URL; PHP stream wrapper returns 200 from same container

オープン
#2,560 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
docker, php

調査の方向性

php:8.3-apache-trixie をベースにした公式の nextcloud:31/32 Dockerfile から始め、コンテナ内で Microsoft Entra discovery URL への curl リクエストを再現します。その結果を PHP file_get_contents および Docker ホストでの結果と比較し、イメージと libcurl の相互作用が原因かどうか、また OIDC の失敗を解決する検証済みの対処法を明らかにします。

索引モデルが issue の本文から書いたものです。

説明

0. Needs triage bug

Summary

On a clean install of Nextcloud 32 using the official nextcloud:32-apache Docker image, the user_oidc app cannot reach the Microsoft Entra OIDC discovery endpoint. Nextcloud logs a GuzzleHttp\Exception\ClientException with 404 NotFound. The same URL returns HTTP 200 when fetched by PHP's stream wrapper (file_get_contents) from inside the same container, and from the Docker host using curl. The failure is isolated to the libcurl path inside the container.

Environment

Component Version
Nextcloud 31.0.14.1 (image nextcloud:31, which resolves to this)
Docker image base php:8.3-apache-trixie (Debian 13 — pre-release)
PHP 8.3.30
libcurl 8.14.1
OpenSSL 3.5.5 (27 Jan 2026)
user_oidc app v8.7.0
Host OS Ubuntu (Debian 12 / Bookworm-based)
Host libcurl Stable Bookworm build
Identity provider Microsoft Entra ID (Azure AD)

Note: the nextcloud:32 Dockerfile at the time of writing also uses FROM php:8.3-apache-trixie, so this affects NC32 as well.

Discovery URL being fetched

https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration

URL is correct per Microsoft OIDC documentation.

Evidence

# curl from inside nextcloud_app container
docker exec nextcloud_app curl -4 -sS -D - https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration

HTTP/2 404
# same result with --tlsv1.2 and --http1.1

# PHP file_get_contents from inside nextcloud_app container
# (script transferred via base64, executed with docker exec)
HTTP/1.1 200 OK
{"token_endpoint":"https://login.microsoftonline.com/...","...": "..."}

# curl from Docker host (Debian 12 Bookworm)
HTTP/2 200

Nextcloud application log entry:

{"app":"user_oidc","message":"Could not reach the provider at URL https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration","exception":{"Exception":"GuzzleHttp\\Exception\\ClientException","Message":"Client error: `GET ...` resulted in a `404 NotFound` response"}}

What was ruled out

  • TLS version: --tlsv1.2 still returns 404
  • HTTP version: --http1.1 still returns 404
  • Request headers: matching Nextcloud's User-Agent and Accept-Encoding on the host still returns 200
  • NAT/egress IP: host and container share the same public IP — confirmed via https://api.ipify.org
  • Entra registration: the discovery URL is correct and the Entra app is configured properly
  • General container networking: DNS resolves, TLS handshake succeeds, other HTTPS endpoints work

Hypothesis

libcurl 8.14.1 on Debian 13 Trixie generates a TLS ClientHello that Microsoft's CDN/Front Door infrastructure responds to with 404, while stable libcurl builds (Debian 12 Bookworm) and PHP's stream wrapper do not trigger this response. This may be a curl regression, a Microsoft-side TLS fingerprint behaviour, or an interaction between the two.

Impact

Any user running nextcloud:31 or nextcloud:32 from the official Docker image who configures Microsoft Entra (Azure AD) OIDC authentication will find that OIDC login is silently broken on a clean install.

主要言語
Shell
スター
7.4k
フォーク
1.9k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nextcloud/docker のほかの issue

nextcloud/docker の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。