EMA leg 3 requires a resource-AS client secret, which blocks public clients the redeem already supports
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 82/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- authentication, backend
Hướng nghiên cứu
Bắt đầu tại core/auth/ema/emaFlow.ts, ở mintEmaResourceTokens, rồi lần theo luồng hiện có dành cho client công khai trong redeemIdJagForAccessToken. Bỏ yêu cầu secret của resource client phải không rỗng, đồng thời giữ lại bước kiểm tra ID của resource client. Công việc hoàn tất khi EMA tiếp tục với secret rỗng bằng token_endpoint_auth_method: none; kiểm tra các bài kiểm thử xác thực liên quan nếu có.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
mintEmaResourceTokens (core/auth/ema/emaFlow.ts) refuses to start the EMA mint unless resourceClientSecret is non-empty:
if (!config.resourceClientSecret?.trim()) {
throw new Error(
"EMA requires resource authorization server client secret in server OAuth settings (Test Client secret from xaa.dev resource registration)",
);
}
But redeemIdJagForAccessToken, which it calls for leg 3, already handles a public client:
token_endpoint_auth_method: params.resourceClientSecret ? "client_secret_post" : "none"
So the guard rules out a case the redeem supports.
Impact: A resource authorization server that registers clients with token_endpoint_auth_method: none can't be used with EMA in Inspector. That covers any server that forces none at DCR, whatever the client asks for. The user gets an error pointing at xaa.dev, which isn't the resource AS in that case.
Reproduce (2.11.0):
- Register a client at a resource AS whose DCR returns
token_endpoint_auth_method: none. - In Server Settings, turn on Enterprise-managed authorization. Set Resource AS Client ID to that client and leave Resource AS Client Secret empty.
- Connect. It fails with
EMA legs 2–3 (resource token mint): EMA requires resource authorization server client secret …before leg 2 runs.
Workaround: put any non-empty secret in the field. That only works if the AS ignores an unexpected client_secret on a public client. A strict AS would refuse it with invalid_client.
Suggested fix: drop the secret guard and keep only the resourceClientId check, so an empty secret goes through the existing none path. If a hint is still wanted, it belongs on an invalid_client response from the token endpoint, not before the request. The field's help text could also say the secret is optional for public clients.
- Ngôn ngữ chính
- TypeScript
- Star
- 11.1k
- Fork
- 1.6k
- Merge trung bình
- 5 giờ 41 phút
- Pull request đã merge (30 ngày)
- 149
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của modelcontextprotocol/inspector
-
Modern resources/directory/read results must carry ttlMs and cacheScope (ext-skills stable spec)Có thể đã có người làm @olaservo đã nhận hôm nay. Đang mởbug v2
modelcontextprotocol/inspector#2740 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
blocked chore v2
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
modelcontextprotocol/inspector#2548 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
blocked chore v2
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
modelcontextprotocol/inspector#2547 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
chore v2
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
modelcontextprotocol/inspector#2544 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
chore v2
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
modelcontextprotocol/inspector#2543 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của modelcontextprotocol/inspector
Issue tương tự
-
skillopt: success-reflect prompt omits the edit schema, so every success-only edit is droppedĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Workspace secrets/constants containing "$" are corrupted when resolved in data source optionsĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
mobile-next/mobile-mcp#526 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
e2e-failure ready-to-code
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 73/100
redhat-developer/rhdh-plugin-export-overlays#4470 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày