2016-03-29 4 views
4

私はモバイルデバイスからユーザーを認証するためにLaravelバックエンドを構築しています。モバイルからhttps://github.com/lucadegasperi/oauth2-server-laravelOAuthを使用しているときにモバイルデバイスに 'client_secret'を保存するのは安全ですか?

ユーザーを使用すると、アクセストークン

を取得するために/のOAuth /コールバックを呼び出します私は、補助金の種類として「パスワード」を使用することを計画しています。ユーザ名&パスワード - - 私は、モバイルデバイス上の秘密を格納で何か問題があるのを感じたクライアントID + SECRET

:だから、その場合には、ユーザーは次のように送信されます。それはいい練習ですか? とアプリのリバースエンジニアリングを行う場合、秘密を簡単に検出できます。

のOAuth2

答えて

1

のOAuth 2.0を使用しているとき、誰もがベストプラクティスを説明することができますが、ネイティブアプリケーションが機密クライアントの資格を維持することができないことを前提としています。以下は、RFC6749「9. Native Applications」の抜粋です。認可コードグラントタイプを使用し

ネイティブアプリケーションが原因に、クライアントの資格情報を使用せずにそう機密クライアントの資格情報を維持するためのネイティブアプリケーションのできないことを行う必要があります。

機密クライアントの資格を維持することは困難である環境にあるクライアントアプリケーションは、パブリッククライアント(RFC 6749、「2.1. Client Types」)と呼ばれています。パブリッククライアントは、クライアントシークレットを使用して承認および/またはトークン要求を行うべきではありません。 (ただし、許可されています)

モバイルデバイスがスマートフォンの場合、アプリケーションにクライアントシークレットを埋め込むべきではありません。一方、モバイルデバイスが特別なものであり、クラッカーがモバイルデバイスのアプリケーションからクライアントシークレットを抽出することは事実上不可能だと考えている場合、クライアントシークレットを使用するとセキュリティが強化されます。