ここでは、各OpenIDプロバイダーから提供されるOpenID機能を公衆無線LAN認証ポータルに統合する上での留意点について解説します。まずは用語の説明から。
用語 | 説明 |
---|---|
アプリケーション | ここでは「公衆無線LAN認証ポータル」(キャプティブポータル)のこと。後述する「OAuthクライアント」と同義となる。 |
ユーザー | アプリケーションの利用者。 |
サービスプロバイダー | アプリケーションを取り扱う組織(アマランス合同会社のパートナー企業)。 |
クライアント | サービスプロバイダーからアプリケーションの提供を受ける組織(自治体等)。 |
技術プロバイダー | アプリケーションの開発元である組織(当社)。 |
デベロッパー | アプリケーションとOpenIDプラットフォームの機能を統合し、アプリケーション全体の動作を保証し稼働環境を維持する者(当社のアプリケーション開発責任者)。 |
OpenIDプロバイダー | アプリケーションにOpenID等の仕組みを提供する組織(Alphabet Inc. や Meta Platforms, Inc.)。OPと略称。 |
OpenID |
OpenIDは、インターネット上でユーザーの身元を認証するためのオープンスタンダード。OpenIDを使用すると、ユーザーは複数のウェブサイトやサービスに対して、一度のログインでアクセスできるようになる。 OpenIDの主な目的は、ユーザーが1つのIDを持って、それを使用して多くの異なるサイトにログインできるようにすること。これにより、ユーザーは各サービスごとに異なるユーザーIDとパスワードを持つ必要がなくなる。 OpenID Connectは、OpenIDの最新のバージョンであり、OAuth 2.0の上にビルドされる。これにより、アプリケーションはユーザーの認証にOpenID Connectを使用し、同時にOAuthを使用してユーザーデータへのアクセス権を得ることができる。 |
OAuth |
OAuthは、ユーザーの認証と承認を安全に行うためのオープンスタンダード。主にウェブアプリケーションやモバイルアプリケーションで使用される。 例えば、ユーザーが第三者のアプリケーションに手持ちのGoogleアカウントに対し限定的なアクセスを許可したい場合、OAuthを使うことで安全にこれを行うことができる。この際、アカウントのパスワードはそのアプリケーションと共有せずに、Googleが仲介して限定的なアクセス権をそのアプリケーションに与えることになる。 |
OAuthクライアント | OAuth 2.0が組み込まれたアプリケーション。ここでは「公衆無線LAN認証ポータル」のこと。 |
OpenIDプラットフォーム | OpenIDプロバイダーの外部連携プラットフォームとエコシステム(Google API Platform や Meta Platform 等)。 |
各OpenIDプロバイダーの利用規約から抜粋した順守事項を以下にまとめます。
ロール | 説明 |
---|---|
技術プロバイダー | アプリケーションについて、OP由来のデータの機密性に配慮しこれを保護すること。 |
アプリケーションについて、適用される法律、規制、データセキュリティおよびプライバシーに関する法律、ルール、規制に準拠すること。 | |
OP由来のユーザー識別子やアクセストークン、シークレットキーをサービスプロバイダー以外と共有しないこと。 | |
ユーザーには、いつでもアクセスできる公開されたプライバシーポリシーを提供すること。 | |
OP由来のデータの種類、その利用目的、その処理方法、削除要請の方法をプライバシーポリシーに明示すること。 | |
プライバシーポリシーは利用規約やその他のポリシーと矛盾せず、これらから上書きまたは変更されないこと。 | |
OPプラットフォームのアプリケーション管理ダッシュボードの設定内で、プライバシーポリシーへのリンクを掲載し、常に最新のリンクを維持すること。 | |
サービスプロバイダーやサブ・サービスプロバイダーが規約に違反していると判断される場合、彼らのアプリケーションの使用を直ちに停止すること。 | |
サービスプロバイダーとサブ・サービスプロバイダーが規約に準拠することを確実にし、彼らの行為と怠慢を含む不順守に対して責任を負うこと。 | |
OPプラットフォームのAPIを使用する際に、自分自身または代理人を通じて、第三者に対してAPIをサブライセンスしないこと。 また、APIと同じ機能を持つAPIクライアントを作成して第三者に提供しないこと。 |
|
OAuthクライアントの資格情報は厳重に管理すること。 この情報を知る者はOPプラットフォーム上のユーザー情報にアクセスできるため。 |
|
OPプラットフォームの利用を停止した場合、速やかにプラットフォーム由来のデータを削除すること。削除証明書の提出を求められた際、これに応じること。 | |
サービスプロバイダー | 技術プロバイダー / デベロッパーの指導の下、OP由来のデータをアプリケーションの目的以外の事に使用しないことを技術プロバイダーと書面で合意すること。 |
他のサービスプロバイダー(サブ・サービスプロバイダー)へアプリケーションを再提供する場合も同様の責務を課すこと。 | |
OpenIDプロバイダー | 公開済のアプリケーションに対し適宜、自動または手動の監査と執行措置を開始する。 これにはアプリの停止、アクセスの削除、データ処理の停止、契約の終了などが含まれる。 |
OpenIDをアプリケーション(公衆無線LAN認証ポータル)に実装する上での留意点を示します。
1 | アプリケーションがOAuthクライアントとして機能するために、JavaScriptオリジンおよびリダイレクトURIがセキュアであること。 |
2 |
ユーザーにはアプリケーションの利用に必要最小限のスコープ(データアクセス権限)のセットのみを要求すること。 また、ユーザーに要求されるスコープの編集(拒否)権を与えること。 |
3 | OAuthトークンは平文で送信せず暗号化して保存し、不要になったら取り消して完全に削除すること。 |
4 | OAuthクライアントとなるアプリケーションは自分が所有するドメインのみで構成されること。 |
5 |
Webviewとも呼ばれる埋め込みユーザーエージェントにOAuth認証リクエストをユーザーに送信させないこと。 いわゆるHotspotの接続支援機能であるiOSのCNA Captive Network Assistant や、AndroidのCPD Captive Portal Detection はこれに該当するため、ユーザーをネイティブブラウザへ誘導すること。 |
6 |
ユーザーに表示する有効なアプリケーション名とロゴの提示により、アプリケーションのブランド情報を正確に表現すること。 アプリケーションを公開する際にダッシュボードを通じてOPに提示されたブランド情報は、彼らの承認を受ける必要があり、身元を偽ったりユーザーを欺こうとするアプリケーションは承認されず、プラットフォームへのアクセスは取り消される。 |
ゲスト無線ネットワーク上、未認証ユーザーがiOSのCaptive Network AssistantまたはAndroid OSのCaptive Portal Detectionで検知され埋め込みブラウザにリダイレクトされた場合、当社の公衆無線LAN認証ポータルでは、このような埋め込みブラウザへの対策として一旦、ログインボタンを非表示化しております。
ここで、手順に従ってリダイレクトURLを(コピーボタンで)コピーし、標準ブラウザのアドレスバーにペーストして開き直すことで、ログインボタンが表示されます。
こうすることで、Googleログイン時にエラー 403: disallowed_useragent が返却されることなく、LINEログインも(メールアドレスとパスワードの手入力でなく)インストール済みのLINEアプリにディープリンクしやすくなりログインがスムーズになります。
キャプティブポータルによるネットワークログインを支援するCNA / CPDという仕組みで何故、埋め込みブラウザが利用されるかというと、一言で言えばフィッシング目的のハニーポット(偽Wi-Fi, 野良Wi-Fi)対策となります。 標準ブラウザにはユーザーが普段利用しているWebアプリへログインするための資格情報を始めとする様々な個人情報が記録されているため、ここで、埋め込みブラウザは標準ブラウザの手前に設置されたファイアウォールとしての機能を果たします。
なお、CNA / CPD上からSafariやChrome等の標準ブラウザへ直接的にユーザーを機械的に誘導することはできず、仮にインターネット技術標準を無視して誘導すると、OSの防御機能によりWi-Fi接続が即座に解除されます。
次回以降は初回ログイン時にユーザーが注記「初めての方へ」の内容に従ってスマートフォンのWi-Fiアドレスを固定化(プライベートMACアドレス iOS、ランダムMACアドレス Android を無効化)していれば、自動的にWi-Fiネットワークにログインし非常にスムーズにインターネットへの接続認可を得ることができます。
プライベートMACアドレスやランダムMACアドレスと呼ばれるものは、Wi-Fiハニーポットと呼ばれる情報詐取やフィッシング目的の(正当なサービスのSSIDを騙る)偽アクセスポイント、Wi-Fiストーキング目的のアクセスポイントからの追跡を回避するために実装されたものですが、当社はネットワーク管理者の立場として(特に無線子機を管理・制御・ロギングするため)このようなMACアドレスの乱数化オプションをオフにすることをインターネット接続認可の条件と定めています。