ユーザーの追加

最終更新日: 07 年 2024 月 XNUMX 日

LogicMonitor REST API v3 を使用してユーザーを追加できます。 API リクエストを行う前に、自分自身を認証する必要があります。

URI: 投稿 /setting/admins

種類説明
lastName文字列ユーザーの姓。
例– "lastName": "Potter"
note文字列ユーザーに関するメモを追加します。
例– "note": "Harry Potter has super admin role."
viewPermissionJSONオブジェクトこの アカウント ユーザーに表示されるタブ。ユーザー構成の「表示権限」領域によって、ユーザーに対するページの可視性が決まります。ページが選択されていない場合、ユーザーは、割り当てられた役割によって提供される権限レベルに関係なく、そのページにアクセスできません。

一般に、すべてのページを選択し、ユーザーに割り当てられた役割によって可視性とアクセスを決定することができますが、状況によっては、ユーザーが特定のページから明確に制限される必要がある場合もあります。

例– { "Resources" : true, "Websites" : true, "Reports" : true, "Dashboards" : true, "Alerts" : true, "Settings" : true, "Maps" : true, "Logs" : true, "Traces" : true }
timezone文字列ユーザーのタイムゾーン。
例– "timezone": "America/Los Angeles"
rolesJSONオブジェクト(必須の) ユーザーに割り当てられた役割。これには、ロールのアカウント権限が含まれます。アカウントの各領域のロールに権限を追加できます。ロールの名前、説明、およびグループ ID、このロールに 2 要素認証が必要な場合、ユーザーが EULA に同意する必要がある場合などは、ロールに指定されます。ユーザーに複数のロールが割り当てられている場合、ユーザーの権限は、割り当てられた各ロールの権限の合計となります。

たとえば、割り当てられた 1 つのロールがすべてのリソースに対して表示のみの権限を提供し、割り当てられた別のロールがすべてのリソースに対して管理権限を提供する場合、ユーザーはすべてのリソースに対して表示権限と管理権限の両方を持ちます。さらに別の割り当てられたロールがすべてのダッシュボードに対する表示権限を提供するが、リソースに対する権限がない場合でも、ユーザーはすべてのリソースに対する管理権限を持ち、さらにすべてのダッシュボードに対する表示権限も持ちます。
smsEmailFormat文字列を示します sms or fullText フォーマット。 SMS の場合は 160 文字、フルテキストの場合はすべての文字が許可されます。
例– "smsEmailFormat": "sms"
apionlyブーリアンユーザーが API 専用ユーザーかどうかを示します。
例– "apionly": true

API のみのユーザーは、LogicMonitor REST API にのみアクセスできます。これらに関連するフィールドは、ユーザー名、API トークン、ロール、ステータス、およびメモのみです。パスワードやその他のユーザー インターフェイス固有のフィールドがないため、API ベースの統合の専用ユーザーとしてより安全になります。
apiTokensJSONオブジェクトユーザーの API トークン。 API トークンは次のもので構成されます
  • note – API トークンのメモ。
    例– "note": "Harry Potter's API Token"
  • status – API トークンが有効かどうかを示します。 1 は無効を示し、2 は有効を示します。
"apiTokens": [
{ "note": "Harry Potter's API Token", "status": 2 }
],
adminGroupIds整数管理者がいるグループのグループ ID。複数のグループ ID はカンマで区切られます。
例– "adminGroupIds": 1,2,3
password文字列(必須の) ユーザーのパスワード。
例– "password": "hPo131"
email文字列(必須の) ユーザーの電子メール アドレス。
例– "email": "[email protected]"
contactMethod文字列ユーザーに連絡する方法。サポートされている連絡方法は次のとおりです。 email と smsemail.
例– "contactMethod": "email"
smsEmail文字列ユーザーのSMS電子メールアドレス。
例– "smsEmail": [email protected]
twoFAEnabledブーリアンユーザーに対して 2 要素認証が有効かどうかを示します。
例– "twoFAEnabled": true
firstName文字列ユーザーの名。
例– "firstName": "Harry"
phone文字列ユーザーの電話番号。
例– "phone": "9091929394"
createdBy文字列ユーザーを作成したユーザーの詳細。別のユーザー、SAML、または LogicMonitor である可能性があります。
例– "createdBy": "Chief Admin" 
forcePasswordChangeブーリアン次回のログイン時にユーザーにパスワードの変更を強制するかどうかを示します。
例– "forcePasswordChange": false
acceptEULAブーリアンユーザーがエンドユーザー使用許諾契約 (EULA) に同意する必要があるかどうかを示します。
例– "acceptEULA": false
username文字列(必須の) ユーザーのユーザー名。
例– "username": "Harry"
status文字列ユーザーのステータス。サポートされている値は次のとおりです。 active と suspended.
例– "status": "active"

次の Python スクリプトは、管理者権限を持つユーザーをアカウント api.logicmonitor.com に追加します。

#!/bin/env python
 
import requests
import json
import hashlib
import base64
import time
import hmac
import getpass
 
#Account Info: LogicMonitor recommends to NEVER hardcode the credentials. Instead, retrieve the values from a secure storage.
#Note: The below is provided for illustration purposes only.
AccessId = getpass.getpass("Enter your AccessId: ")
AccessKey = getpass.getpass("Enter your AccessKey: ")
UserPassword = getpass.getpass("Enter password for user : ")
Company = 'apiAccount'  
 
#Request Info
httpVerb ='POST'
resourcePath = '/setting/admins'
queryParams =''
data = '{"roles":[{"name":"administrator"}],"email":"[email protected]","username":"sara","password":"%s","smsEmail":"[email protected]"}'
 
#Construct URL
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath + queryParams
 
#Get current time in milliseconds
epoch = str(int(time.time() * 1000))
 
#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath  
 
#Construct signature
digest = hmac.new(
        AccessKey.encode('utf-8'),
        msg=requestVars.encode('utf-8'),
        digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(digest.encode('utf-8')).decode('utf-8')   
 
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + str(signature) + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth,'X-Version':3}
 
#Make request
response = requests.post(url, data=data, headers=headers)
 
#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
Pythonの3