公衆無線認証サービス

ここでは、公衆無線LAN認証サービスwiffyについて解説します。

  • 不特定多数の無線子機からの認証要求をクラウドで高速に処理する公衆無線向けの利用者認証サービスです。
  • 認証方式として、SNS認証・Email認証・SMS認証・同意のみ認証に対応します。
  • ヘビーユーザーの接続を制限する接続時間制限・接続回数制限に対応します。
  • 認証連携可能な無線LAN製品には指定がありますで別途お問い合わせください。

認証サービスの設定

公衆無線LANサービス事業者様のメールアドレス宛にクラウドへの招待状をお届けします。手順に従いアカウントを発行し、ログインしてください。

ログイン前に、パスワードを忘れてしまいログインできない場合、「パスワードをお忘れですか?」のリンクから、パスワードを再発行できます。

ログイン後、画面右上のユーザーアイコンから、「Edit My Profile(プロフィールの編集)」に進み、パスワード変更も可能です。

Manage Users (ユーザー管理) には、キャプティブポータルにログインしたユーザーのレコードが登録されていきます。

必要に応じて、無線子機のMACアドレスを検索することでユーザーを特定し、そのユーザーからの認証要求を「Disable(無効化)」したり、ユーザー自体を「Delete(削除)」することができます。

アトリビュート 説明
User ID ユーザーID
User Domain ユーザードメイン
Area Domain エリアドメイン
MAC Address クライアントMACアドレス
User Name ユーザー名(SNSのハンドルネーム)
Language 言語(ブラウザ/OSから自動判定)
Country 国籍(ブラウザ/OSから自動判定)
E-Mail Address メールアドレス
Expires at 有効期限
Last Auth at 最終認証時刻
Created at 作成日時
Update at 更新日時
Last Date Count 最終認証日の認証数
Last Month Count 最終認証月の認証数
Total Count 総認証数
Last AP 最終接続先AP
Last SSID 最終接続先SSID

E-Mail Auth (E-Mail認証設定) では、メールアドレス登録によるネットワーク認証設定を行います。

Per-day Usage Limits
(1日の利用回数上限)
例えば「5」と指定すると、同日中6度目のログイン試行時に、利用者のスマートフォンのキャプティブポータル上に「1日に利用可能な接続数を超えました。ご利用ありがとうございました。」というアラートが表示され、インターネットには接続できません。「unlimited」を選択すると、無制限にログインさせることができます。
Session Timeout
(セッション切断時間)
一回のログインあたりのインターネット接続可能時間を指定します。例えば、「3600」Sec(秒)と指定すると、ユーザーは1時間後にインターネットから切断され、キャプティブポータルに再度リダイレクトされます(再ログイン要求)。
MAC Auth Period
(MAC認証の許可時間)
ユーザーが初回にSNS認証やメールアドレス認証をした後、次回以降は登録済みの無線クライアントMACアドレスとの突合により、SNS側ログインやメールアドレス登録をスキップできる間隔を指定します。

例えば、一週間スキップさせる場合は「604800」Sec(秒)を指定します。無制限にスキップさせる場合、「0」をセットします。

「MAC Auth Period(MAC認証の許可時間)」を設定する場合、これと連動する設定である、「Appearance(外観)」>「Widgets(ウィジェット)」>「AAA Data Broker(認証ウィジェット)」のオプション「Allow MAC address authentication next time.(二回目以降の接続で端末MACアドレス認証を許可する)」を必ず選択してください。
それ以降の設定項目 本人確認のための折り返しメールを送信するための設定(メールヘッダー/ボディ、送信メールサーバー設定)となります。送信メールサーバーにはSendGridを利用しますので、事前にAPIの発行手続きを行います。

SNS Auth(SNS認証設定) では、SNSログインと連動するネットワーク認証設定を行います。

Per-day Usage Limits
(1日の利用回数上限)
例えば「5」と指定すると、同日中6度目のログイン試行時に、利用者のスマートフォンのキャプティブポータル上に「1日に利用可能な接続数を超えました。ご利用ありがとうございました。」というアラートが表示され、インターネットには接続できません。「unlimited」を選択すると、無制限にログインさせることができます。
Session Timeout
(セッション切断時間)
一回のログインあたりのインターネット接続可能時間を指定します。例えば、「3600」Sec(秒)と指定すると、ユーザーは1時間後にインターネットから切断され、キャプティブポータルに再度リダイレクトされます(再ログイン要求)。
MAC Auth Period
(MAC認証の許可時間)
ユーザーが初回にSNS認証やメールアドレス認証をした後、次回以降は登録済みの無線クライアントMACアドレスとの突合により、SNS側ログインやメールアドレス登録をスキップできる間隔を指定します。

例えば、一週間スキップさせる場合は「604800」Sec(秒)を指定します。無制限にスキップさせる場合、「0」をセットします。

「MAC Auth Period(MAC認証の許可時間)」を設定する場合、これと連動する設定である、「Appearance(外観)」>「Widgets(ウィジェット)」>「AAA Data Broker(認証ウィジェット)」のオプション「Allow MAC address authentication next time.(二回目以降の接続で端末MACアドレス認証を許可する)」を必ず選択してください。
それ以降の設定項目 それ以降の設定は、各OpenIDプロバイダー側と連携するためのものになります。各OpenIDプロバイダー側へログインAPI利用の申請手続きが必要となりますので、事前にAPIの発行手続きを行います。

SMS Auth (電話番号認証設定) では、電話番号認証によるネットワーク認証設定を行います。

Per-day Usage Limits
(1日の利用回数上限)
例えば「5」と指定すると、同日中6度目のログイン試行時に、利用者のスマートフォンのキャプティブポータル上に「1日に利用可能な接続数を超えました。ご利用ありがとうございました。」というアラートが表示され、インターネットには接続できません。「unlimited」を選択すると、無制限にログインさせることができます。
Session Timeout
(セッション切断時間)
一回のログインあたりのインターネット接続可能時間を指定します。例えば、「3600」Sec(秒)と指定すると、ユーザーは1時間後にインターネットから切断され、キャプティブポータルに再度リダイレクトされます(再ログイン要求)。
MAC Auth Period
(MAC認証の許可時間)
ユーザーが初回にSNS認証やメールアドレス認証をした後、次回以降は登録済みの無線クライアントMACアドレスとの突合により、SNS側ログインやメールアドレス登録をスキップできる間隔を指定します。

例えば、一週間スキップさせる場合は「604800」Sec(秒)を指定します。無制限にスキップさせる場合、「0」をセットします。

「MAC Auth Period(MAC認証の許可時間)」を設定する場合、これと連動する設定である、「Appearance(外観)」>「Widgets(ウィジェット)」>「AAA Data Broker(認証ウィジェット)」のオプション「Allow MAC address authentication next time.(二回目以降の接続で端末MACアドレス認証を許可する)」を必ず選択してください。
それ以降の設定項目 Twilioに対し、SMS発信API利用の申請手続きが必要となりますので、事前にAPIも発行と発信電話番号の取得手続きを行います。

Reporting (レポート設定) では、月次の認証件数レポートを指定メールアドレスに自動送信する設定を行います。

前月分の統計情報が毎月1日の午前9時以降に順次送信されます。ここでも送信メールサーバーにはSendGridを利用しますので、発行済みのAPI情報を設定し保存します。

AAA Analytics (認証統計分析) では、認証ログから認証方式別・国籍別・言語別の統計グラフを出力します。

右上の「Date Picker」から期間を指定します。

Auth Logs (認証ログ) には、AAA (Authentication, Authorization, Accounting) モデルに準拠するユーザー認証ログが記録されます。

認証ログのサンプル
日付 時間 種別 内容 補足 詳細
2020/10/6 11:44:29 SR-S-001003 A command of type [User] [Create] was successful. ユーザー作成(または更新) {User ID : [email protected]} {User Name : darekasan} {Description : cnt=1,mct=1,ldt=2020-10-06,gen=male,loc=ja-JP,lng=Japanese,cty=Japan,flw=0,lap=287610204A71,tct=1,lid=wiffy FREE Internet} {Email : [email protected]} {Mobile Mac Address : 84C7EA423D1C} {Password : *} {Area Domain Name : site001} {Local Authentication : Default} {Back-end Authentication : Default} {Disabled : no} {Locked : no}
2020/10/6 11:44:29 SR-S-001003 A command of type [User Attributes] [Create] was successful. アトリビュート作成(認証タイムアウト値をセット) {Area Domain Name : site001} {User ID : [email protected]} {Attribute Group : STG} {Sequence Number : 1} {Attribute Name : Session-Timeout} {Usage Qualifier : Reply} {Attribute Value : *} {Created Time : 2020/10/06 11:44:29} {Modified Time : 2020/10/06 11:44:29} {Options : 1} {Key ID : SSMINSTALLSENSITIVEKEY} {Version : 31100}
2020/10/6 11:44:29 SR-S-001003 A command of type [User] [Set Expiration] was successful. アトリビュート作成(有効期限をセット) {User ID : [email protected]} {Area Domain Name : site001} {Expiration Time : 2020/10/13 11:44:29}
2020/10/6 11:44:31 SR-S-002001 User authentication was successful. ユーザー認証成功 {User ID : [email protected]} {Password : *} {Area Domain Name : site001} {User Attributes : {[ {Area Domain Name : site001} {User ID : [email protected]} {Attribute Group : STG} {Sequence Number : 1} {Attribute Name : Session-Timeout} {Usage Qualifier : Reply} {Attribute Value : *} {Created Time : 2020/10/06 11:44:29} {Modified Time : 2020/10/06 11:44:29} {Options : 1} {Key ID : SSMINSTALLSENSITIVEKEY}
2020/10/6 11:44:31 SR-S-002001 User authentication was successful. パスワードフォーマット等の情報 {User ID : [email protected]@site001} {Raw User ID : 0x34333634574F4843444D56464E4B5935454C5954544A3750444D407961686F6F2E6A704073697465393936} {Password Format : 1} {CHAP Identifier : 0} {CHAP Challenge : 0x27C2E7FCE61D77DAB886CAB606C2FD71} {CHAP Response : 0x6D2609B1998F1B14F1B9ED4F4AB4E891} {Protocol ID : RADIUS} {Protocol Specific Data : 0xAC1F001A5C9015380CE7EB45DAFDAAD804AA5DCAA6ABC5}
2020/10/6 11:44:31 SR-I-006002 A RADIUS Accounting-Request has been received. アカウンティング(Start) A RADIUS Accounting-Request has been received. RADIUS Code:4, RADIUS Id:0, vendor(14559):attrib(8):0x1A11000038DF080B312E332E312D73766E, vendor(14559):attrib(10):0x1A0C000038DF0A0600000002, Event-Timestamp:1601952271, User-Name:[email protected]@site001, Acct-Status-Type:Start, Acct-Session-Id:5f7bd9e200000002, Framed-IP-Address:192.168.182.10, NAS-Port-Type:Wireless-IEEE-802.11, NAS-Port:2, NAS-Port-ID:00000002, Calling-Station-Id:84-C7-EA-42-3D-1C, Called-Station-Id:28-76-10-20-4A-71, NAS-IP-Address:192.168.182.1, NAS-Identifier:nas01, Proxy-State:1
2020/10/6 11:49:31 SR-I-006002 A RADIUS Accounting-Request has been received. アカウンティング(Interim) RADIUS Code:4, RADIUS Id:0, vendor(14559):attrib(8):0x1A11000038DF080B312E332E312D73766E, vendor(14559):attrib(10):0x1A0C000038DF0A0600000002, Event-Timestamp:1601952571, User-Name:[email protected]@site001, Acct-Input-Octets:249554, Acct-Output-Octets:31553, Acct-Input-Gigawords:0, Acct-Output-Gigawords:0, Acct-Input-Packets:347, Acct-Output-Packets:253, Acct-Session-Time:300, Acct-Status-Type:Interim, Acct-Session-Id:5f7bd9e200000002, Framed-IP-Address:192.168.182.10, NAS-Port-Type:Wireless-IEEE-802.11, NAS-Port:2, NAS-Port-ID:00000002, Calling-Station-Id:84-C7-EA-42-3D-1C, Called-Station-Id:28-76-10-20-4A-71, NAS-IP-Address:192.168.182.1, NAS-Identifier:nas01, Proxy-State:2
2020/10/6 12:14:34 SR-I-006002 A RADIUS Accounting-Request has been received. アカウンティング(Stop) RADIUS Code:4, RADIUS Id:0, vendor(14559):attrib(8):0x1A11000038DF080B312E332E312D73766E, vendor(14559):attrib(10):0x1A0C000038DF0A0600000002, Event-Timestamp:1601954074, User-Name:[email protected]@site001, Acct-Input-Octets:363175, Acct-Output-Octets:95433, Acct-Input-Gigawords:0, Acct-Output-Gigawords:0, Acct-Input-Packets:668, Acct-Output-Packets:492, Acct-Session-Time:1803, Acct-Termination-Cause:Session-Timeout, Acct-Status-Type:Stop, Acct-Session-Id:5f7bd9e200000002, Framed-IP-Address:192.168.182.10, NAS-Port-Type:Wireless-IEEE-802.11, NAS-Port:2, NAS-Port-ID:00000002, Calling-Station-Id:84-C7-EA-42-3D-1C, Called-Station-Id:28-76-10-20-4A-71, NAS-IP-Address:192.168.182.1, NAS-Identifier:nas01, Proxy-State:8

Redirection(認証後の転送先)では、キャプティブポータル経由のネットワーク認証に成功し、インターネット接続認可を与えられた無線クライアントを、指定のウェブサイトに誘導します。

以下のような条件を設定できます。

  • ユーザーがキャプティブポータルから「LINEでログイン」したら無線AP所有者の「LINE公式ページ」に着地させる
  • 無線APのMACアドレスが「74:83:c2:23:e7:0e」だったら「https://www.tiktok.com/@higakiyakitori」に着地させる

3rdパーティAPIの発行

SNSへのログインでwiffyへのログイン(無線LANへのログイン)を実現するためにはまず、各SNSプロバイダー側でログインAPIを発行する必要があります。そこで発行されたAPIの「キー」と「シークレット」を、wiffyのダッシュボードに適用します。

なお、近年のSNS業界では、APIおよびデータプラットフォームの開放という開発者優先の時代から、SNS利用者のプライバシーおよびデータの保護を優先・強化する時代に移行しております。

つきましては、wiffyと連携する無線LAN装置を設置するお客様は従来のように当社発行の共通版ログインAPIを共用利用するのではなくお客様自身でSNSログインAPIの適切な発行手続きと維持管理を行う必要があります。当社および当社のパートナーは、これを支援します。

メールアドレス登録でwiffyへのログイン(無線LANへのログイン)を許可する際、本人確認のためにリターンメールを送信しますが、この際に利用する送信メールサーバーとして、SendGridというサービスを利用します。そこで発行されたAPIのキーを、wiffyのダッシュボードに適用します。

  • SendGridは(株)構造計画研究所のサービスを利用します。
  • SendGridアカウントの発行(契約)には、メール送信者の立場にあたるお客様組織の有効なメールアドレスが必要です。
    また、そのメールアドレスはWi-Fi利用者へのメール送信に利用されますので、特定の社員様のメールアドレスは適切でなく、この用途専用のメールアドレスをご用意いただくことになります。
  • 当社または当社のパートナーがお客様の代わりにSendGridアカウントを契約することはできません。
    もしこれを行った場合、SendGrid契約の譲渡または再販に相当し、SendGridの利用規約に違反することになります。
  • 送信数12,000/月までは無料でご利用いただけます。送信数が月内に12,000を超えた場合、次月に至る間、リターンメールが送信されなくなります。

各種APIをwiffyに導入する際のお勧め度を以下にまとめました。2023/5/9 更新

導入可能なAPI お勧め度 コメント
LINE Login 管理UIも日本語かつ、当社とOP(OpenID Provider)間の連携が容易。日本におけるID保有者が多い。
Yahoo!ID Login 管理UIも日本語かつ、当社とOP間の連携が容易。日本におけるID保有者が多い。
Google Login 管理UIも日本語かつ、当社とOP間の連携が容易。全世界的にID保有者が多い。CNA / CPDではエラーを返すため、ネイティブブラウザに誘導すること。
SendGrid リターンメールを受信させるための仮認証(一時的な通信の穴あけ)が、Wi-Fiただ乗りアプリに悪用されやすい。
CableID Login 商用化を検討中。導入は応相談。
Twitter Login ◎ → × 2023年5月〜のAPI利用の有償化に伴い、商用に耐えうるプランは月額100USDと定められ敷居が高くなった。
Facebook Login ○ → × 旧Facebook社より続く個人情報漏洩の対策として導入された、開発者アプリに対する不定期レビュー(現Meta社による巡回監査)の承認率が低いため、維持が容易でない。

認証ホワイトリスト

ここでは、無線LAN認証サービスにおける、インターネットアクセス認可前の段階におけるSNSログインに必要なホワイトリスト Walled Garden の更新情報を掲示しております。SNSログインによる無線LAN認証を提供する場合、無線LANアクセスポイント / コントローラ側のホワイトリストを常に最新の状態に保つ必要があります。

ざっくりと広めに開放する例です。

3rd Party Aruba / Edgecore / IgniteNet / Relay2 / UniFi Aerohive / CISCO Meraki / Ruckus
wiffy wifiservice.jp *.wifiservice.jp
wiffy fonts.googleapis.com fonts.googleapis.com
wiffy fonts.gstatic.com fonts.gstatic.com
Facebook akamaihd.net *.akamaihd.net
Facebook facebook.com *.facebook.com
Facebook facebook.net *.facebook.net
Facebook fbcdn.net *.fbcdn.net
X(Twitter) twimg.com *.twimg.com
X(Twitter) twitter.com *.twitter.com
LINE line.me *.line.me
LINE line-scdn.net *.line-scdn.net
LINE line-apps.com *.line-apps.com
LINE line.naver.jp *.line.naver.jp
Yahoo!Japan yahoo.co.jp *.yahoo.co.jp
Yahoo!Japan yahoo.jp *.yahoo.jp
Yahoo!Japan yahooapis.jp *.yahooapis.jp
Yahoo!Japan yimg.jp *.yimg.jp
Yahoo!Japan yjtag.jp *.yjtag.jp
Google accounts.google.com accounts.google.com
Google accounts.google.co.jp accounts.google.co.jp
Google accounts.youtube.com accounts.youtube.com
Google googleusercontent.com *.googleusercontent.com
Google ssl.gstatic.com ssl.gstatic.com
Google www.gstatic.com www.gstatic.com
3rd Party UniFi / IgniteNet Meraki / Ruckus
Next PostOpenID統合