役割の追加
最終更新日: 29 年 2022 月 XNUMX 日LogicMonitorのRESTAPIを使用すると、LogicMonitorアカウントに新しい役割をプログラムで追加できます。
注:すべてのAPI呼び出しと同様に、 認証が必要です
役割を追加する
HTTPメソッド:POST
URI:/ settings / roles
リクエストパラメータ:新しい役割について、次のプロパティをPOSTできます
プロパティ |
説明 |
必須? |
価値観 |
|
名 | 役割の名前 | ○ | 役割名は、数字、文字、および–および_記号に制限されています | 文字列 |
説明 | 役割の説明 | いいえ | この値はデフォルトで空白の文字列になります | 文字列 |
requireEula | この役割に関連付けられているユーザーがEULA(エンドユーザー使用許諾契約)に同意する必要があるかどうか | いいえ | この値のデフォルトはfalseです | ブーリアン |
カスタムヘルプラベル | [ヘルプとサポート]ドロップダウンメニューに表示されるカスタムヘルプURLのラベル | いいえ | この値はデフォルトで空白の文字列になります | 文字列 |
カスタムヘルプURL | [ヘルプとサポート]ドロップダウンメニューに追加する必要のあるURL | いいえ | この値はデフォルトで空白の文字列になります | 文字列 |
特権 | ロールに付与される特権。各特権オブジェクトには次のものが含まれている必要があります。
|
○ | このオブジェクトには、ユーザーに付与された特権ごとにネストされたオブジェクトが含まれている必要があります。 | JSONオブジェクト |
注意: 特権オブジェクトとその構築方法の詳細については、以下を参照してください。 役割リソースについて ページで見やすくするために変数を解析したりすることができます。
例
次のPythonスクリプトは、次の権限を持つロール「DBチーム」を追加します。
- プライベートダッシュボードを管理し、
- ABCCorporationダッシュボードグループを管理する
- ダッシュボードの「リソース割り当て」を管理する
- すべてのデバイスグループを表示
- デバイスダッシュボードを管理する
- 個人ユーザープロファイル情報の編集
- APIトークンを管理する
- チャットを見る
この役割には、ユーザーのヘルプメニューの下に表示されるカスタムヘルプURLとラベルが追加で含まれています。
#!/bin/env python
import requests
import json
import hashlib
import base64
import time
import hmac
#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'
#Request Info
httpVerb ='POST'
resourcePath = '/setting/roles'
queryParams = ''
data = '{"name":"DB Team","customHelpLabel":"Internal Support Resources","customHelpURL":"https://logicmonitor.com/support","privileges":[{"objectType":"dashboard_group","objectId":"private","objectName":"private","operation":"write"},{"objectType":"dashboard_group","objectId":4,"objectName":"ABC Corporation","operation":"write"},{"objectType":"dashboard","objectId":77,"objectName":"Resource Allocation","operation":"write"},{"objectType":"host_group","objectId":"*","objectName":"*","operation":"read"},{"objectType":"deviceDashboard","objectId":"","operation":"write"},{"objectType":"setting","objectId":"useraccess.personalinfo","operation":"write"},{"objectType":"setting","objectId":"useraccess.apitoken","operation":"write"},{"objectType":"help","objectId":"chat","objectName":"help","operation":"write"}]}'
#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
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())
#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}
#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)