公衆無線認証サービス - OpenID統合

2023/6/14 最終更新

ここでは、各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利用契約上の責務

各OpenIDプロバイダーの利用規約から抜粋した順守事項を以下にまとめます。

ロール 説明
技術プロバイダー アプリケーションについて、OP由来のデータの機密性に配慮しこれを保護すること。
アプリケーションについて、適用される法律、規制、データセキュリティおよびプライバシーに関する法律、ルール、規制に準拠すること。
OP由来のユーザー識別子やアクセストークン、シークレットキーをサービスプロバイダー以外と共有しないこと。
ユーザーには、いつでもアクセスできる公開されたプライバシーポリシーを提供すること。
OP由来のデータの種類、その利用目的、その処理方法、削除要請の方法をプライバシーポリシーに明示すること。
プライバシーポリシーは利用規約やその他のポリシーと矛盾せず、これらから上書きまたは変更されないこと。
OPプラットフォームのアプリケーション管理ダッシュボードの設定内で、プライバシーポリシーへのリンクを掲載し、常に最新のリンクを維持すること。
サービスプロバイダーやサブ・サービスプロバイダーが規約に違反していると判断される場合、彼らのアプリケーションの使用を直ちに停止すること。
サービスプロバイダーとサブ・サービスプロバイダーが規約に準拠することを確実にし、彼らの行為と怠慢を含む不順守に対して責任を負うこと。
OPプラットフォームのAPIを使用する際に、自分自身または代理人を通じて、第三者に対してAPIをサブライセンスしないこと。
また、APIと同じ機能を持つAPIクライアントを作成して第三者に提供しないこと。
OAuthクライアントの資格情報は厳重に管理すること。
この情報を知る者はOPプラットフォーム上のユーザー情報にアクセスできるため。
OPプラットフォームの利用を停止した場合、速やかにプラットフォーム由来のデータを削除すること。削除証明書の提出を求められた際、これに応じること。
サービスプロバイダー 技術プロバイダー / デベロッパーの指導の下、OP由来のデータをアプリケーションの目的以外の事に使用しないことを技術プロバイダーと書面で合意すること。
他のサービスプロバイダー(サブ・サービスプロバイダー)へアプリケーションを再提供する場合も同様の責務を課すこと。
OpenIDプロバイダー 公開済のアプリケーションに対し適宜、自動または手動の監査と執行措置を開始する。
これにはアプリの停止、アクセスの削除、データ処理の停止、契約の終了などが含まれる。

OpenID実装上の留意点

OpenIDをアプリケーション(公衆無線LAN認証ポータル)に実装する上での留意点を示します。

説明
アプリケーションがOAuthクライアントとして機能するために、JavaScriptオリジンおよびリダイレクトURIがセキュアであること。
ユーザーにはアプリケーションの利用に必要最小限のスコープ(データアクセス権限)のセットのみを要求すること。また、ユーザーに要求されるスコープの編集(拒否)権を与えること。
OAuthトークンは平文で送信せず暗号化して保存し、不要になったら取り消して完全に削除すること。
OAuthクライアントとなるアプリケーションは自分が所有するドメインのみで構成されること。
Webviewとも呼ばれる埋め込みユーザーエージェントにOAuth認証リクエストをユーザーに送信させないこと(Google OAuth 2.0ポリシーで明示的に規定)。
いわゆるHotspotの接続支援機能であるiOSのCNA Captive Network Assistant や、AndroidのCPD Captive Portal Detection はこれに該当するため、ユーザーをネイティブブラウザへ誘導すること。
ユーザーに表示する有効なアプリケーション名とロゴの提示により、アプリケーションのブランド情報を正確に表現すること。
アプリケーションを公開する際にダッシュボードを通じてOPに提示されたブランド情報は、彼らの承認を受ける必要があり、身元を偽ったりユーザーを欺こうとするアプリケーションは承認されず、プラットフォームへのアクセスは取り消される。

OpenID実装イメージ

標準ブラウザ誘導

未認証ユーザーがiOSのCNAまたはAndroidのCPDにリダイレクトされた場合、ログインボタンが非活性のため、注記「ログインボタンが押せない場合」の内容に従ってリダイレクトURLを(コピーボタンで)コピーし、標準ブラウザのアドレスバーにペーストして開き直すと、ログインボタンが活性化し押せるようになります。

次回以降は初回ログイン時にユーザーが注記「初めての方へ」の内容に従ってスマートフォンのWi-Fiアドレスを固定化(プライベートMACアドレス iOS、ランダムMACアドレス Android を無効化)していれば、自動的にWi-Fiネットワークにログインし非常にスムーズにインターネットへの接続認可を得ることができます。

プライベートMACアドレスやランダムMACアドレスと呼ばれるものは、Wi-Fiハニーポットと呼ばれる情報詐取やフィッシング目的の(正当なサービスのSSIDを騙る)偽アクセスポイントや、Wi-Fiストーキング目的のアクセスポイントからの追跡を回避するために実装されたものですが、当社はネットワーク管理者の立場として、Wi-Fiクライアント端末を管理・制御・ロギングするため、このようなMACアドレスのデコイ化オプションをオフにすることをインターネット接続認可の条件と定めています。

Previous Post公衆無線認証サービス