web-dev-qa-db-ja.com

認証後のキャプティブポータルの自動クローズを防止する(Android)

つまり、簡単なアイデアは、ユーザーがユーザー資格情報を介してRuckusコントローラーで認証できるようにRADIUSサーバーをセットアップすることです。認証時に、ユーザーはMACを管理できるページにリダイレクトする必要があります。認証されたデバイス。

「古い」Androidデバイスを含め、これまでにテストしたすべてのもので、これは問題がないようで、正常に動作します。ただし、Lollipop(5.0+)バージョンのAndroidキャプティブポータルはかなり変更されており、その変更の一部は、ネットワークに参加したときに起動するキャプティブポータルを自動的に閉じることです。認証後にMACデバイス管理ページにリダイレクトされるようにするためです。彼らは現在ログインしているデバイスを追加し、再度ログインする必要をなくすことができます。これは悪いことです。

私が試したこと:

  1. ブラウザがモバイルデバイスで起動されているかどうかを検出し、ブラウザを開いたままにしようとするアラートをonbeforeunloadにポップします。

  2. 認証の成功が​​検出されたときに、リダイレクトURLを指す新しいブラウザウィンドウを開きます(基本的にはリダイレクトを自分で管理します)。

  3. リダイレクトされたURLでオプション2を実行し、次にオプション1を実行する

機能しないもの:

  • デバイスのキャプティブポータルオプションを無効にするようにユーザーに依頼します。一般ユーザーに高度なコントロールを紹介しようとしない。

  • MACマネージャにアクセスするためのオープンネットワークを作成するには、認証の背後にある必要があります。

今のところ解決策:

このソリューションには不満がありますが、今のところ、ユーザーにネットワークで認証してからブラウザーを開き、ユーザーが手動で追加できないデバイスを追加するために使用する基本的なログインポータルページ(非ネットワーク認証)に移動するように求めています。 (プリンター、ゲーム機など)と接続します。これは機能しますが、ユーザーがログインしてブラウザーを開き、手動でURLを入力してから、再度ログインする必要があるのは面倒です。

これは人々が遭遇していない問題ではありません、 ここを参照 、私は問題に遭遇した誰からも解決策を見つけることができませんでした。確かに、この状況でブラウザを開いたままにするためにjavascriptなどを利用する方法がいくつかあります。そうでない場合、誰かが物事を管理するためのより良いアイデアを持っていますか?

11
zgc7009

ファイアウォールルールのブロックを追加することで、LollipopでUAMブラウザ/キャプティブポータルブラウザを開いたままにすることができました。

  • clients3.google.com
  • clients1.google.com、
  • Android.clients.google.com
  • 接続性チェック.Android.com
  • 接続性チェック.gstatic.com

したがって、ユーザーが認証された後、UAM /キャプティブブラウザは開いたままになります。

必要な限りUAMを開いたままにしておくことができ、Googleの接続ページへの逆プロキシ204リダイレクトを呼び出すことでUAMを閉じる​​ことができます。

9
Johann Combrink

これは、Lollipop(5.0)のリリース以降、Androidデバイスでの新しいキャプティブポータルの動作のようです。

回避策はまだ発見されていません。自動却下を無効にする明示的な方法がある場合、それはおそらくAndroidコードベースで利用可能です(私は探していましたが、まだ決定的なものは見つかりませんでした):

https://Android.googlesource.com/platform/frameworks/base

参考までに、Androidはキャプティブネットワークの検出にCloudFrontCDNを使用しています。キャプティブポータルソリューションは元々アセットにCloudFrontを使用していたため、事前認証ACLでCloudFrontサブネットをホワイトリストに登録する必要がありました。ホワイトリストに登録するその後、CloudFrontにより、最近のAndroidデバイスでキャプティブネットワークの検出が失敗しました。Androidデバイスのキャプティブポータル機能を復元するには、CloudFrontCDNを放棄する必要がありました。

3
derekm

認証後にキャプティブポータルを開いたままにしてみませんか?すべてのサイトへのアクセスをいつでも許可できます除くキャプティブチェックサイト。

AndroidとすべてのバージョンのiOSの両方でテストおよび動作しています。デフォルトのブラウザ(キャプティブiOS/Androidサンドボックスブラウザではない)からCookie /共有ストレージにアクセスする必要がある場合は、認証の前にホップアウトする必要があります。

0
lukyer