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のみとなる場合があるので、ネットワークエンジニアでもスクリプトスキルが必要ですね。