この質問は、ネイティブモバイルアプリケーションのOAuthベースのログインに関連しています。認可許可タイプのフローに従って、ユーザーはログインページにユーザーID、パスワードを入力し、それに応答して、認可コードがURLで取得されます(URLはhttpsベースの暗号化も機能しません)。OAuthフローに関するセキュリティ問題
これは、認証コードがプロキシで利用可能であることを意味し、クライアントシークレットを持っていれば誰でも使用できます。モバイル・アプリケーションはセキュリティ保護されていないと考えられているため、クライアント・シークレットはモバイル・アプリケーションに格納することはできません。クライアント・シークレットのセキュリティを迂回するために覚えていたアプローチは、モバイル・クライアントがクライアントID、承認コード、リダイレクトURL。エンドポイントはクライアントシークレットを豊かにし、実際のトークンエンドポイントを呼び出してアクセス権を取得します。 HTTPS経由での通信がすべて行われるため、アクセス権が保護されます。
ここで問題となるのは、URLパラメータの認証コードが安全でなく、脆弱であることです。あるいは、私はセキュリティについて過度に思っています。これが主要な質問です。これが実際にセキュリティ上の問題であれば、緩和策はどのように採用されていますか?
私が考えることができ、古いstackoverflowスレッドの1つから、サーバ側からアクセストークンを与えるトークンエンドポイントを保護するというオプションがありました。どのようにそれを行うにはどのような提案? - 証明書があれば、証明書はモバイルアプリにパッケージ化され、再び安全ではない)
d。 [仕様](https://tools.ietf.org/html/rfc6749#section-3.1.2.1)から:要求された応答タイプが "code"の場合、リダイレクションエンドポイントはセクション1.6で説明したようにTLSを使用する必要があります(SHOULD)またはリダイレクト要求が開かれたネットワークを介して機密性の高い資格情報を送信する結果となる場合に、 –
@Kris - リダイレクトエンドポイントがTLSを使用しているが、認証コードがTLSによって保護されていないHTTPクエリパラメータの一部であることに同意しました。 – Vaya
それはあなたが "保護されている"という意味に依存します。許可されている場合は、Webサーバーによって記録され、TLSを終了する場合はプロキシによって記録される可能性があります。しかし、ネットワーク上の盗聴者はそれを見ることはできません。 –