Meraki APIでPEAPユーザを追加してみた

こんにちは。ネットワークソリューション特集 編集部です。
今回は、MerakiでのAPIを利用したPEAPユーザ追加をしてみました。

Meraki MR(無線LANアクセスポイント)では、外部RADIUSサーバではなくMeraki内部のRADIUSサーバでPEAP(ID/PW認証)が利用できますが
ダッシュボードからだとユーザ登録がリスト登録できず、不便です。
API経由だとリスト登録できますので今回はその検証結果です。

ダッシュボードユーザ登録画面

Meraki API準備

1.APIアクセス出来るようAPI Keyを取得します。
「オーガナイゼーション」->「設定」でAPIアクセスを許可します。

2.プロフィール画面で「新規APIキーを作成」を選択します。表示されたAPIキーを控えておきます。

3.オーガナイゼーションIDの取得をします。下記のサイトで先程に取得したAPIキーを入力すると取得できます。

https://developer.cisco.com/meraki/api-v1/#!get-organizations

3.ネットワークIDの取得をします。下記のサイトで先程に取得したオーガナイゼーションIDを入力すると取得できます。

https://developer.cisco.com/meraki/api-v1/#!get-organization-networks

これで、APIキー、 オーガナイゼーションID、ネットワークIDのパラメータを取得できました。

Python準備、コード

今回はPythonスクリプトでリストインポートをするので準備します。(Python環境構築については割愛します)

1.Meraki Dashboard API Python Libraryをインストールします。

pip install meraki

(インストール出来ない場合は、pipが古い場合があるのでpip install –upgrade pipでpip自体のアップデートをしてください)

2.CSVフォーマットは下記で設定しました。(1行目はヘッダ行です)
Pythonファイルと同じフォルダに保存します。

email,name,password,ssidNumber
user1@example.com,user1@example.com,password,10
user2@example.com,user2@example.com,password,10

3.Pythonスクリプトは下記にしました。
下記のサイトで、サンプルスクリプトを生成できます。

https://developer.cisco.com/meraki/api-v1/#!create-network-meraki-auth-user

APIキー、ネットワークIDはご自身の環境に置き換えてください。
row関数がCSVの各列になります。

import meraki
import csv
import pprint

API_KEY = <APIキー>

dashboard = meraki.DashboardAPI(API_KEY)

with open('user.csv') as f:
        reader = csv.reader(f)
        header = next(reader)
        for row in reader:
            network_id = <ネットワークID>
            email = row[0]
            name = row[1]
            password = row[2]
            authorizations = [                {
                    "expiresAt": "Never",
                    "ssidNumber": row[3]
                }]

            response = dashboard.networks.createNetworkMerakiAuthUser(
                network_id, email, name, password, authorizations
            )

        print(response)
f.close()

4.Pythonを実行します。

py .\meraki_auth_user_add_sdk.py
meraki:     INFO > Meraki dashboard API session initialized with these parameters: {'version': '1.7.2', 'api_key': 'APIキー', 'base_url': 'https://api.meraki.com/api/v1', 'single_request_timeout': 60, 'certificate_path': '', 'requests_proxy': '', 'wait_on_rate_limit': True, 'nginx_429_retry_wait_time': 60, 'action_batch_retry_wait_time': 60, 'retry_4xx_error': False, 'retry_4xx_error_wait_time': 60, 'maximum_retries': 2, 'simulate': False, 'be_geo_id': None, 'caller': None, 'use_iterator_for_get_pages': False}
meraki:     INFO > POST https://api.meraki.com/api/v1/networks/ネットワークID/merakiAuthUsers
meraki:     INFO > networks, createNetworkMerakiAuthUser - 201 Created
meraki:     INFO > POST https://api.meraki.com/api/v1/networks/ネットワークID/merakiAuthUsers
meraki:     INFO > networks, createNetworkMerakiAuthUser - 201 Created

これで、リストでのPEAPユーザ作成完了です。

今回はMerakiでのAPIを利用したPEAPユーザ追加を検証しました。
最近は、GUIでの設定が出来ずAPIのみとなる場合があるので、ネットワークエンジニアでもスクリプトスキルが必要ですね。