fn require_read(parts: &Parts, tool: &str) -> Result<(), ErrorData>
从 request extensions 取 principal 并校验 read 作用域;不足返回 insufficient_scope。