2017-12-27 3 views
0

JavaでFirebase Admin SDKを使用して、カスタムクレームが設定されたカスタムトークンを作成しています。私は戻って、クライアントのインターフェースであるAndroidアプリにこれらを送っていますし、でログインしています:今すぐトークンに署名するために使用されるサービスアカウントのファイルは安全で隠されているカスタムトークンを使用したFirebase認証を安全に使用していますか?

signInWithCustomToken("foundtokenfromserver"); 

。しかし、Database URL、API Key、Storage Bucket URLはWebパーツに公開されているので、誰でも自分のアプリを作ることができると思います。私は、ユーザーを自分のノードに制限するセキュリティルールを用意しています。

私の主な関心事は、次のとおりです。

誰かが鋳造カスタムトークンを傍受して、それを保存した場合。上記のFirebaseApp(公開情報を使用して生成)を使用してログインするだけでは、そのトークンを使用できませんか?

firebaseがそのような誤用を防ぐ方法はありますか(認証ドメインによってウェブが停止する可能性はありますが、localhostはどうでしょうか)。

+1

私は決してカスタムトークンを作成していないので、それについてはあまり伝えられません。しかし、公開されているデータベースURL、APIキー、およびストレージURLについて心配する必要はありません。データベースとストレージにセキュリティルールが公開されていない限り誰でもURLからアクセスできます([check](https://stackoverflow.com/questions/35418143/how-to-restrict-firebase-data-modification))。 apiキーも問題ではありません。なぜなら、それはあなたのプロジェクトに名前を付ける別の方法に過ぎないからです(この[post](https://stackoverflow.com/questions/37482366/is-it-safe-to-公開されたfirebase-apikey-to-the-public)) –

+0

そうですが、公開されている人であれば誰でもFirebaseAppインスタンスをWebおよびAndroid上で初期化できます(iosについてのidk)。そして、彼らが認証トークンに手を加えれば、私は彼らが認証することができるかもしれないか、または仮面と言うことを聞かせてやりたくなるかもしれないと心配しています。また、アンドロイドSDKは透明にトークンをリフレッシュします...そうですよ生涯アクセス: - \ – Kushan

+0

誰もFirebaseAppインスタンスをこれらのデータで初期化できるとは思わない。 Androidの場合、アプリを初期化するには 'google_services.json'ファイルが必要です。 Firebaseのホスティングを使用してWebアプリケーションを配信/展開する前に、Web上でFirebase CLIにログインする必要があります。 –

答えて

1

通常、サーバーに認証アサーションを送信した後にカスタムトークンを作成します。たとえば、電子メール/パスワードを使用して独自のカスタム認証システムを使用している可能性があります。もう1つの例は、サポートされていないOAuthプロバイダを使用している可能性があり、プロバイダがすでにそのユーザを検証しており、アプリケーションの検証後にアサーション(OAuth認証情報/認証コードなど)さらに、盗聴を防ぐために、安全なTLS接続を使用しています。

+0

アサーションは常に最初に起こりますが、実際には接続はTLSのものになります:)推測はちょっと妄想的です – Kushan

関連する問題