Appearance
Cisco Meraki
How to connect Cisco Meraki MR access points, managed from the Meraki cloud dashboard, to Kiwire.
| Device type in Kiwire | Meraki |
| Redirect URL | https://<kiwire-host>/login/meraki (Meraki calls it the custom splash URL) |
| RADIUS | auth 1812 / acct 1813 (UDP) |
| Identity must equal | Each access point's MAC address, one record per AP, written with colons (for example e0:55:3d:12:34:56) |
| Disconnect / live changes (CoA) | No |
| Data caps | Time limits only (Session-Timeout) |
Read Controller identity and Virtual NAS once before your first installation.
How a login works
- A guest joins the SSID. The Meraki AP sends their browser to the custom splash URL, which is Kiwire. Meraki adds its own parameters, including the AP's MAC (
ap_mac), the guest's MAC and IP, the page they asked for (continue_url) and a one-timelogin_urlon Meraki's side. - The guest logs in on the Kiwire portal.
- Kiwire sends the guest's browser to Meraki's
login_urlwith theusername,passwordand asuccess_url(the page the guest first asked for). - Meraki checks those credentials with Kiwire over RADIUS, then lets the guest on.
So Meraki does not host the login page and does not send the password to the portal. The portal is Kiwire's, and the password reaches Meraki from the guest's browser. Kiwire never uses the Meraki Dashboard API.
Meraki's login_url carries a one-time token after a ?, which Kiwire passes back to Meraki untouched.
Before you start
From Kiwire:
- The RADIUS server address shown in the Setup Guide checklist (Before you add your controller › RADIUS Authentication & Accounting). Below it is written
<radius-server-ip>. - The Meraki RADIUS secret from Synchroweb support. Meraki networks use a fixed RADIUS secret on Kiwire, the same for every Meraki network. Synchroweb support gives it to you. It is not the value in the record's Shared Secret Key field.
- Your
<kiwire-host>: the host name of your portal. Portals › Troubleshoot › Controller Test shows it in the Test URL field.
From Meraki:
- Dashboard access to the network, with rights to change SSIDs.
- The MAC address of every AP that broadcasts the guest SSID (Wireless › Monitor › Access points, or export the list).
- Enough Kiwire licence: every AP is one controller record.
On the controller
Menu names and commands vary between firmware versions; the values are what matter. The paths below are from the Meraki dashboard.
- Wireless › Configure › Access control, choose the guest SSID:
- Security (network access): Open (no encryption), or the option your policy needs. Guests log in on the splash page, not with 802.1X.
- Splash page: Sign-on with → my RADIUS server.
- RADIUS servers → Add a server:
- Host:
<radius-server-ip> - Port:
1812 - Secret: the Meraki secret from Synchroweb support
- Host:
- RADIUS accounting: enabled. RADIUS accounting servers → Add a server: host
<radius-server-ip>, port1813, the same secret. - Leave the NAS identifier Meraki sends as it is. Kiwire recognises a Meraki network by it.
- Advanced splash settings › Walled garden: enabled. Add
<kiwire-host>,fonts.googleapis.comandfonts.gstatic.com, plus anything else your portal loads (see Walled garden and redirect). If your dashboard only accepts IP ranges here, enter the addresses those names resolve to. - Save.
- Wireless › Configure › Splash page, same SSID:
- Choose Custom splash URL ("Or provide a URL where users will be redirected") and enter
https://<kiwire-host>/login/meraki. - Don't add any query string: Meraki appends its own parameters, and Kiwire's Meraki login config already reads them.
- Save.
- Choose Custom splash URL ("Or provide a URL where users will be redirected") and enter
In Kiwire
Admin › System › Device Controller: add one record per AP:
- Vendor: Meraki
- Identity: the AP's MAC with colons, for example
e0:55:3d:12:34:56. Upper or lower case both match, but dashes (E0-55-3D-…) or no separators do not. - Shared Secret Key: required by the form, but not used for Meraki's RADIUS. Use Generate.
- Leave IP Address empty. Kiwire cannot send disconnects to Meraki APs.
For many APs, use the CSV import on the same page (columns
unique_id,vendor,shared_secret; vendormeraki).Why one per AP: Meraki's splash redirect carries the AP's MAC (
ap_mac), and its RADIUS requests carry the same AP's MAC in Called-Station-Id. Kiwire uses that MAC to find the record for both. An AP without a record gives the guest a "not configured" error.Check the redirect parameters. The Meraki login config is maintained by Synchroweb. It reads
client_mac,client_ip,continue_url,login_urlandap_mac. See The redirect and the login config.Zones and journeys. Under Portals › Captive Portal › Zones Mapping, add zone rules and give each zone a journey. Meraki's redirect doesn't carry the SSID or VLAN for Kiwire, so group APs with NAS ID rules (one AP MAC per rule), or use one zone for the whole network. See Controllers and zones and Designers and journeys.
Test it
- Portals › Troubleshoot › Controller Test → Start Capture, then connect a phone to the guest SSID. Check that the hit shows
mac,login_urland the AP's MAC as the controller ID, and that it is registered to your organisation. If the AP is shown as not registered, compare its MAC in the capture with the Identity you entered. - Log in as a guest. If the portal accepts the login but Meraki then shows an error, the RADIUS secret or RADIUS server address on the SSID is wrong, or the AP's record is missing.
- Reporting › Login › Active Session: the session should appear once Meraki sends accounting.
- In the Meraki dashboard, Network-wide › Monitor › Event log shows splash and RADIUS events for the client.
Limits to know
- Fixed RADIUS secret. All Meraki networks on Kiwire use the secret Synchroweb support gives you. The Shared Secret Key on the record doesn't change it.
- One record per AP, and every record counts toward your licence's controller limit. Add the record before a new AP goes live.
- Add records before the device goes live. Kiwire accepts a new record straight away. If the device already sent RADIUS requests before its record existed, they can keep failing for up to an hour. See Controller identity and Virtual NAS.
- No disconnects or live changes. Changing a guest's profile in Kiwire does not reach a session that is already running. It applies from the guest's next login.
- No data caps. Kiwire has no Meraki data attribute. The session length comes from Session-Timeout. For speed limits, set per-client limits on the SSID in the Meraki dashboard if the profile's speeds aren't applied.
Vendor reference
- Configuring RADIUS Authentication with a Sign-on Splash Page: Access control settings, RADIUS servers, Called-Station-Id format.
- Meraki Captive Portal API: Sign-on: the splash URL parameters and the post to
login_url. - Configuring a Custom-Hosted Splash Page to Work with the Meraki Cloud