AppHarbor のアプリケーションは、NGINX ロード バランサーの背後にあります。このため、SSL はこのフロント エンドによって処理されるため、クライアント アプリにヒットするすべての要求は HTTP 経由で送信されます。
ASP.NET MVC の OAuth 2 OAuthAuthorizationServerOptions には、トークン要求へのアクセスを HTTPS のみを使用するように制限するオプションがあります。問題は、Controller や ApiController とは異なり、AllowInsecureHttp = false を指定したときにこれらの転送されたリクエストを許可する方法がわからないことです。
具体的には、アプリの起動/構成で:
app.UseOAuthBearerTokens(new OAuthAuthorizationServerOptions {
AllowInsecureHttp = true,
});
どうにかしてこのチェックを内部で行う必要があり、それが true の場合は SSL として扱います。
HttpContext.Request.Headers["X-Forwarded-Proto"] == "https"
カスタムフィルター属性を適用してMVCコントローラーを使用する方法は次のとおりです: https://gist.github.com/runesoerensen/915869