Through testing I determined the issue was the user-agent string, that is, these header values are unacceptable to the API:
GET /oauth2/authorize?client_id=(my id)&response_type=code&state=test HTTP/1.1
Host: api.imgur.com
User-Agent: Tcl http client package 2.7.10
But these are acceptable:
GET /oauth2/authorize?client_id=(my id)&response_type=code&state=test HTTP/1.1
Host: api.imgur.com
User-Agent: Why are you filtering me by agent string
Specifically "Tcl http client" is causing the HTTP 403 response. Is this due to keyword checks in Imgur's nginx config to prevent header injections, or are there user-agent strings that are avoided for some reason?