Details
| ID | SafewalkManagement |
|---|---|
| Provider | InWebo Group |
| Category | Authentication & Identity Management |
| From Version | 6.0.0 |
| Docker Image | demisto/python3:3.12.8.3296088 |
| Supported Modules | Agentix XSIAM |
README
Safewalk server integration
This integration was integrated and tested with version 3 of SafewalkManagement
This is the default integration for this content pack when configured by the Data Onboarder in Cortex XSIAM.
Configure SafewalkManagement in Cortex
| Parameter | Description | Required |
|---|---|---|
| First fetch timestamp (<number> <time unit>, e.g., 12 hours, 7 days) | False | |
| Max fetch | False | |
| Server URL (e.g. https://soar.monstersofhack.com) | True | |
| Fetch incidents | False | |
| Incident type | False | |
| API Key | True | |
| Trust any certificate (not secure) | False | |
| Use system proxy settings | False | |
| Fetch indicators | False | |
| Incidents Fetch Interval | False | |
| Indicator Reputation | Indicators from this integration instance will be marked with this reputation | False |
| Source Reliability | Reliability of the source providing the intelligence data | True |
| False | ||
| False | ||
| Feed Fetch Interval | False | |
| Bypass exclusion list | When selected, the exclusion list is ignored for indicators from this feed. This means that if an indicator from this feed is on the exclusion list, the indicator might still be added to the system. | False |
| Tags | Supports CSV values. | False |
| Traffic Light Protocol Color | The Traffic Light Protocol (TLP) designation to apply to indicators fetched from the feed | False |
Commands
You can execute these commands from the CLI, as part of an automation, or in a playbook.
After you successfully execute a command, a DBot message appears in the War Room with the command details.
safewalk-get-transactionlog
Display transaction log.
Base Command
safewalk-get-transactionlog
Input
| Argument Name | Description | Required |
|---|---|---|
| page | Pages to be displayed. | Optional |
| search | User to search. | Optional |
| locked | locked. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.transactionlist.count | Number | Number of transactions |
| Safewalk.management.transactionlist.next | String | Next page |
| Safewalk.management.transactionlist.previous | Unknown | Previous page |
| Safewalk.management.transactionlist.results.reason_detail | Unknown | Reason |
| Safewalk.management.transactionlist.results.is_locked | Boolean | Is locked |
| Safewalk.management.transactionlist.results.id | Number | Result ID |
| Safewalk.management.transactionlist.results.type | String | Result type |
| Safewalk.management.transactionlist.results.timestamp | Date | Results timestamp |
| Safewalk.management.transactionlist.results.user | String | Results user |
| Safewalk.management.transactionlist.results.username | String | Results username |
| Safewalk.management.transactionlist.results.serial_number | Unknown | Serial Number |
| Safewalk.management.transactionlist.results.code | String | Code |
| Safewalk.management.transactionlist.results.transaction_id | String | Transaction ID |
| Safewalk.management.transactionlist.results.result | String | Result |
| Safewalk.management.transactionlist.results.reason | Unknown | Reason |
| Safewalk.management.transactionlist.results.caller | String | Caller |
Human Readable Output
safewalk-get-users
Search local users.
Base Command
safewalk-get-users
Input
| Argument Name | Description | Required |
|---|---|---|
| page | page. | Optional |
| search | search. | Optional |
| locked | locked. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.userlist.count | Number | Count |
| Safewalk.management.userlist.next | Unknown | Next |
| Safewalk.management.userlist.previous | Unknown | Previous |
| Safewalk.management.userlist.results.username | String | username |
| Safewalk.management.userlist.results.first_name | String | First Name |
| Safewalk.management.userlist.results.last_name | String | Last Name |
| Safewalk.management.userlist.results.mobile | String | Mobile number |
| Safewalk.management.userlist.results.email | String | |
| Safewalk.management.userlist.results.is_locked | Boolean | Is Locked |
Human Readable Output
safewalk-get-ldap-users
Search LDAP users
Base Command
safewalk-get-ldap-users
Input
| Argument Name | Description | Required |
|---|---|---|
| page | page. | Optional |
| search | search. | Optional |
| locked | locked. | Optional |
| ldap | ldap. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.ldapusers.count | Number | Count |
| Safewalk.management.ldapusers.next | Unknown | Next |
| Safewalk.management.ldapusers.previous | Unknown | Previous |
| Safewalk.management.ldapusers.results.username | String | username |
| Safewalk.management.ldapusers.results.first_name | String | First Name |
| Safewalk.management.ldapusers.results.last_name | String | Last Name |
| Safewalk.management.ldapusers.results.mobile | String | Mobile number |
| Safewalk.management.ldapusers.results.email | String | |
| Safewalk.management.ldapusers.results.is_locked | Boolean | Is locked |
Human Readable Output
safewalk-get-ldaps
Get LDAP configuration.
Base Command
safewalk-get-ldaps
Input
| Argument Name | Description | Required |
| — | — | — |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.ldaps.id | Number | ID |
| Safewalk.management.ldaps.is_active | Boolean | Is active |
| Safewalk.management.ldaps.ldap_type | String | Type |
| Safewalk.management.ldaps.name | String | Name |
| Safewalk.management.ldaps.domain | String | Domain |
| Safewalk.management.ldaps.server | String | LDAP Server |
| Safewalk.management.ldaps.port | Number | LDAP port |
| Safewalk.management.ldaps.secondary_server | String | Secondary Server |
| Safewalk.management.ldaps.secondary_port | Unknown | Secondary server port |
| Safewalk.management.ldaps.bind_dn | String | Bind DN |
| Safewalk.management.ldaps.bind_password | String | Bind password |
| Safewalk.management.ldaps.root_dn | String | Root DN |
| Safewalk.management.ldaps.user_search | String | User search |
| Safewalk.management.ldaps.search_filter | String | Search filter |
| Safewalk.management.ldaps.map_uid_attr | String | uid attribute |
| Safewalk.management.ldaps.map_secondary_uid_attr | String | Secondary uid attribute |
| Safewalk.management.ldaps.map_first_name_attr | String | Name attr |
| Safewalk.management.ldaps.map_last_name_attr | String | Last Name attr |
| Safewalk.management.ldaps.map_email_attr | String | Email attr |
| Safewalk.management.ldaps.map_mobile_attr | String | Mobile attr |
| Safewalk.management.ldaps.map_user_status_attr | String | User status attr |
| Safewalk.management.ldaps.map_pwd_last_set_attr | String | map_pwd_last_set_attr |
| Safewalk.management.ldaps.map_maximum_password_age | String | map_maximum_password_age |
| Safewalk.management.ldaps.map_swisscom_mobile_id_sn_attr | String | map_swisscom_mobile_id_sn_attr |
| Safewalk.management.ldaps.map_immutableid_attr | String | map_immutableid_attr |
| Safewalk.management.ldaps.priority | Number | ldaps.priority |
Human Readable Output
safewalk-get-user-personalinformation
Get users personal information.
Base Command
safewalk-get-user-personalinformation
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.userpersonalinformation.username | String | Username |
| Safewalk.management.userpersonalinformation.first_name | String | First name |
| Safewalk.management.userpersonalinformation.last_name | String | Last name |
| Safewalk.management.userpersonalinformation.dn | Unknown | DN |
| Safewalk.management.userpersonalinformation.db_mobile_phone | String | Mobile phone |
| Safewalk.management.userpersonalinformation.db_email | String | |
| Safewalk.management.userpersonalinformation.ldap_mobile_phone | Unknown | LDAP mobile phone |
| Safewalk.management.userpersonalinformation.ldap_email | Unknown | LDAP email |
| Safewalk.management.userpersonalinformation.user_storage | String | User storage |
| Safewalk.management.userpersonalinformation.is_locked | Boolean | Is locked |
| Safewalk.management.userpersonalinformation.has_password_expired | Unknown | Password expired |
| Safewalk.management.userpersonalinformation.is_required_to_change_password | Unknown | Is required to change password |
| Safewalk.management.userpersonalinformation.user_disabled | Unknown | User disabled |
| Safewalk.management.userpersonalinformation.user_lockout | Unknown | User lockout |
| Safewalk.management.userpersonalinformation.password_expiration_date | Unknown | Password expiration date |
| Safewalk.management.userpersonalinformation.last_authentication_attempt | Date | Last authentication attempt |
Human Readable Output
safewalk-set-user-personalinformation
Set user personal information.
Base Command
safewalk-set-user-personalinformation
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| email. | Optional | |
| mobile_phone | mobile_phone. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-get-user-accessattempts
Get user access attempts
Base Command
safewalk-get-user-accessattempts
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.accessattempts.failures_since_start | Number | Since start |
| Safewalk.management.accessattempts.attempt_time | Date | Attempt time |
| Safewalk.management.accessattempts.is_locked | Boolean | Is locked |
Human Readable Output
safewalk-delete-user-accessattempts
Delete user access attempts
Base Command
safewalk-delete-user-accessattempts
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-get-user-tokens
Get user tokens
Base Command
safewalk-get-user-tokens
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.usertokens.serial_number | Date | Usertokens serial number |
| Safewalk.management.usertokens.type | String | User tokens type |
| Safewalk.management.usertokens.confirmed | Boolean | User tokens confirmed |
| Safewalk.management.usertokens.password_required | Unknown | User tokens password required |
| Safewalk.management.usertokens.physical_token | Unknown | User tokens physical token |
| Safewalk.management.usertokens.status | String | User tokens status |
| Safewalk.management.usertokens.status_change_date | Unknown | User tokens status change date |
Human Readable Output
safewalk-delete-user-token
Delete user token.
Base Command
safewalk-delete-user-token
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| devicetype | devicetype. | Optional |
| serialnumber | serialnumber. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-send-user-virtualtoken
Send user virtual token.
Base Command
safewalk-send-user-virtualtoken
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| token_devicetype | token_devicetype. | Optional |
| token_serialnumber | token_serialnumber. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-get-user-settings
Get user settings.
Base Command
safewalk-get-user-settings
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.usersettings.backuptoken_attempts | Number | Backup token attempts |
| Safewalk.management.usersettings.backuptoken_timeout | Number | Backup token timeout |
| Safewalk.management.usersettings.backuptoken_gateways | Unknown | Backup token gateways |
| Safewalk.management.usersettings.backup_password_required | Boolean | Backup password requiered |
| Safewalk.management.usersettings.inherited_backuptoken_attempts.value | Number | Backup token attempts value |
| Safewalk.management.usersettings.inherited_backuptoken_attempts.level | String | Backup token attempts level |
| Safewalk.management.usersettings.inherited_backuptoken_timeout.value | Number | Backup token timeout value |
| Safewalk.management.usersettings.inherited_backuptoken_timeout.level | String | Backup token timeout level |
| Safewalk.management.usersettings.inherited_backuptoken_gateways.level | String | Backup token gateways level |
| Safewalk.management.usersettings.inherited_backup_password_required.value | Boolean | Backup password required value |
| Safewalk.management.usersettings.inherited_backup_password_required.level | String | Backup password required level |
| Safewalk.management.usersettings.registration_token_attempts | Unknown | Registration token attempts |
| Safewalk.management.usersettings.registration_token_timeout | Unknown | Registration token timeout |
| Safewalk.management.usersettings.registration_token_gateways | Unknown | Registration token gateways |
| Safewalk.management.usersettings.inherited_registration_token_attempts.value | Number | Registration token attempts value |
| Safewalk.management.usersettings.inherited_registration_token_attempts.level | String | Registration token attempts level |
| Safewalk.management.usersettings.inherited_registration_token_timeout.value | Number | Registration token timeout value |
| Safewalk.management.usersettings.inherited_registration_token_timeout.level | String | Registration token timeout level |
| Safewalk.management.usersettings.inherited_registration_token_gateways.level | String | Registration token gateways level |
| Safewalk.management.usersettings.gaia_ttw_level | Unknown | gaia ttw level |
| Safewalk.management.usersettings.inherited_gaia_ttw_level.value | String | gaia ttw level value |
| Safewalk.management.usersettings.inherited_gaia_ttw_level.level | String | gaia ttw level level |
| Safewalk.management.usersettings.sesami_mobile_password_required | Unknown | sesami mobile password required |
| Safewalk.management.usersettings.sesami_slim_password_required | Unknown | sesami slim password required |
| Safewalk.management.usersettings.hotp_password_required | Unknown | hotp password required |
| Safewalk.management.usersettings.hotp_flex_password_required | Unknown | hotp flex password required |
| Safewalk.management.usersettings.hotp_flex_pin_password_required | Unknown | hotp flex pin password required |
| Safewalk.management.usersettings.totp_password_required | Unknown | totp password required |
| Safewalk.management.usersettings.totp_flex_password_required | Unknown | totp flex password required |
| Safewalk.management.usersettings.totp_flex_pin_password_required | Unknown | totp flex pin password required |
| Safewalk.management.usersettings.totp_mobile_password_required | Unknown | totp mobile password required |
| Safewalk.management.usersettings.inherited_sesami_mobile_password_required.value | Boolean | sesami mobile password required value |
| Safewalk.management.usersettings.inherited_sesami_mobile_password_required.level | String | sesami mobile password required level |
| Safewalk.management.usersettings.inherited_sesami_slim_password_required.value | Boolean | sesami slim password required value |
| Safewalk.management.usersettings.inherited_sesami_slim_password_required.level | String | sesami slim password required level |
| Safewalk.management.usersettings.inherited_hotp_password_required.value | Boolean | hotp password required value |
| Safewalk.management.usersettings.inherited_hotp_password_required.level | String | hotp password required level |
| Safewalk.management.usersettings.inherited_hotp_flex_password_required.value | Boolean | hotp flex password required value |
| Safewalk.management.usersettings.inherited_hotp_flex_password_required.level | String | hotp flex password required level |
| Safewalk.management.usersettings.inherited_hotp_flex_pin_password_required.value | Boolean | hotp flex pin password required value |
| Safewalk.management.usersettings.inherited_hotp_flex_pin_password_required.level | String | hotp flex pin password required level |
| Safewalk.management.usersettings.inherited_totp_password_required.value | Boolean | totp password required value |
| Safewalk.management.usersettings.inherited_totp_password_required.level | String | totp password required level |
| Safewalk.management.usersettings.inherited_totp_flex_password_required.value | Boolean | totp flex password required value |
| Safewalk.management.usersettings.inherited_totp_flex_password_required.level | String | totp flex password required level |
| Safewalk.management.usersettings.inherited_totp_flex_pin_password_required.value | Boolean | totp flex pin password required value |
| Safewalk.management.usersettings.inherited_totp_flex_pin_password_required.level | String | totp flex pin password required level |
| Safewalk.management.usersettings.inherited_totp_mobile_password_required.value | Boolean | totp mobile password required value |
| Safewalk.management.usersettings.inherited_totp_mobile_password_required.level | String | totp mobile password required level |
| Safewalk.management.usersettings.allow_password | Boolean | allow password |
| Safewalk.management.usersettings.allow_password_for_registration | Boolean | allow password for registration |
| Safewalk.management.usersettings.allow_access_when_pwd_expired | Boolean | allow access when pwd expired |
| Safewalk.management.usersettings.allow_password_reset_when_forgot_pwd | Unknown | allow password reset when forgot pwd |
| Safewalk.management.usersettings.min_otp_length | Unknown | min otp length |
| Safewalk.management.usersettings.max_otp_length | Unknown | max otp length |
| Safewalk.management.usersettings.inherited_allow_password.value | Boolean | allow password value |
| Safewalk.management.usersettings.inherited_allow_password.level | String | allow password level |
| Safewalk.management.usersettings.inherited_allow_password_for_registration.value | Boolean | allow password for registration value |
| Safewalk.management.usersettings.inherited_allow_password_for_registration.level | String | allow password for registration level |
| Safewalk.management.usersettings.inherited_allow_access_when_pwd_expired.value | Boolean | allow access when pwd expired value |
| Safewalk.management.usersettings.inherited_allow_access_when_pwd_expired.level | String | allow access when pwd expired level |
| Safewalk.management.usersettings.inherited_allow_password_reset_when_forgot_pwd.value | Boolean | allow password reset when forgot pwd value |
| Safewalk.management.usersettings.inherited_allow_password_reset_when_forgot_pwd.level | String | allow password reset when forgot pwd level |
| Safewalk.management.usersettings.inherited_min_otp_length.value | Number | min otp length value |
| Safewalk.management.usersettings.inherited_min_otp_length.level | String | min otp length level |
| Safewalk.management.usersettings.inherited_max_otp_length.value | Number | max otp length value |
| Safewalk.management.usersettings.inherited_max_otp_length.level | String | max otp length level |
| Safewalk.management.usersettings.max_allowed_failures | Unknown | max allowed failures |
| Safewalk.management.usersettings.inherited_max_allowed_failures.value | Number | max allowed failures value |
| Safewalk.management.usersettings.inherited_max_allowed_failures.level | String | max allowed failures level |
| Safewalk.management.usersettings.totp_accept_tolerance | Unknown | totp accept tolerance |
| Safewalk.management.usersettings.totp_resend_tolerance | Unknown | totp resend tolerance |
| Safewalk.management.usersettings.totp_resend_timeout | Unknown | totp resend timeout |
| Safewalk.management.usersettings.inherited_totp_accept_tolerance.value | Number | totp accept tolerance value |
| Safewalk.management.usersettings.inherited_totp_accept_tolerance.level | String | totp accept tolerance level |
| Safewalk.management.usersettings.inherited_totp_resend_tolerance.value | Number | totp resend tolerance value |
| Safewalk.management.usersettings.inherited_totp_resend_tolerance.level | String | totp resend tolerance level |
| Safewalk.management.usersettings.inherited_totp_resend_timeout.value | Number | totp resend timeout value |
| Safewalk.management.usersettings.inherited_totp_resend_timeout.level | String | totp resend timeout level |
| Safewalk.management.usersettings.hotp_accept_tolerance | Unknown | hotp accept tolerance |
| Safewalk.management.usersettings.hotp_resend_tolerance | Unknown | hotp resend tolerance |
| Safewalk.management.usersettings.hotp_resend_timeout | Unknown | hotp resend timeout |
| Safewalk.management.usersettings.inherited_hotp_accept_tolerance.value | Number | hotp accept tolerance value |
| Safewalk.management.usersettings.inherited_hotp_accept_tolerance.level | String | hotp accept tolerance level |
| Safewalk.management.usersettings.inherited_hotp_resend_tolerance.value | Number | hotp resend tolerance value |
| Safewalk.management.usersettings.inherited_hotp_resend_tolerance.level | String | inherited hotp resend tolerance level |
| Safewalk.management.usersettings.inherited_hotp_resend_timeout.value | Number | hotp resend timeout value |
| Safewalk.management.usersettings.inherited_hotp_resend_timeout.level | String | hotp resend timeout level |
| Safewalk.management.usersettings.virtual_device_gateways | Unknown | virtual device gateways |
| Safewalk.management.usersettings.virtual_device_accept_tolerance | Number | virtual device accept tolerance |
| Safewalk.management.usersettings.inherited_virtual_device_gateways.level | String | virtual device gateways level |
| Safewalk.management.usersettings.inherited_virtual_device_accept_tolerance.value | Number | virtual device accept tolerance value |
| Safewalk.management.usersettings.inherited_virtual_device_accept_tolerance.level | String | virtual device accept tolerance level |
| Safewalk.management.usersettings.dos_tmp_lockdown_max_fail_authentications | Unknown | dos_tmp_lockdown_max_fail_authentications |
| Safewalk.management.usersettings.dos_tmp_lockdown_time_interval_in_seconds | Unknown | dos_tmp_lockdown_time_interval_in_seconds |
| Safewalk.management.usersettings.dos_tmp_lockdown_time_in_seconds | Unknown | dos_tmp_lockdown_time_in_seconds |
| Safewalk.management.usersettings.inherited_dos_tmp_lockdown_max_fail_authentications.value | Number | dos_tmp_lockdown_max_fail_authentications.value |
| Safewalk.management.usersettings.inherited_dos_tmp_lockdown_max_fail_authentications.level | String | dos_tmp_lockdown_max_fail_authentications.level |
| Safewalk.management.usersettings.inherited_dos_tmp_lockdown_time_interval_in_seconds.value | Number | dos_tmp_lockdown_time_interval_in_seconds.value |
| Safewalk.management.usersettings.inherited_dos_tmp_lockdown_time_interval_in_seconds.level | String | dos_tmp_lockdown_time_interval_in_seconds.level |
| Safewalk.management.usersettings.inherited_dos_tmp_lockdown_time_in_seconds.value | Number | dos_tmp_lockdown_time_in_seconds.value |
| Safewalk.management.usersettings.inherited_dos_tmp_lockdown_time_in_seconds.level | String | dos_tmp_lockdown_time_in_seconds.level |
| Safewalk.management.usersettings.user_storage | Unknown | User storage |
| Safewalk.management.usersettings.multiple_step_auth_timeout | Unknown | multiple step auth timeout |
| Safewalk.management.usersettings.inherited_user_storage.value | String | user storage value |
| Safewalk.management.usersettings.inherited_user_storage.level | String | user storage level |
| Safewalk.management.usersettings.inherited_multiple_step_auth_timeout.value | Number | multiple step auth timeout value |
| Safewalk.management.usersettings.inherited_multiple_step_auth_timeout.level | String | usersettings_inherited_multiple_step_auth_timeout.level |
Human Readable Output
safewalk-get-user-group
Get user group.
Base Command
safewalk-get-user-group
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.usergroup.default_group.name | String | default group name |
| Safewalk.management.usergroup.default_group.is_member | Boolean | default group is member |
| Safewalk.management.usergroup.default_group.dn | Unknown | default group dn |
| Safewalk.management.usergroup.default_group.priority | Number | default group priority |
| Safewalk.management.usergroup.groups.name | String | groups name |
| Safewalk.management.usergroup.groups.is_member | Boolean | groups is member |
| Safewalk.management.usergroup.groups.dn | String | groups dn |
| Safewalk.management.usergroup.groups.priority | Number | groups priority |
Human Readable Output
safewalk-add-user-group
Add user group.
Base Command
safewalk-add-user-group
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| new-group-name | new-group-name. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-remove-user-group
Remove user group.
Base Command
safewalk-remove-user-group
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| old-group-name | old-group-name. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-get-user-registrationcode
Get user registration code
Base Command
safewalk-get-user-registrationcode
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Safewalk.management.registrationcode.expiration | Date | registration code expiration |
| Safewalk.management.registrationcode.attempts_left | Number | registration code attempts left |
| Safewalk.management.registrationcode.sent_by | Unknown | registration code sent by |
| Safewalk.management.registrationcode.sent_on | Unknown | registration code sent on |
| Safewalk.management.registrationcode.token | String | registration code token |
| Safewalk.management.registrationcode.purpose | String | registration code purpose |
Human Readable Output
safewalk-set-user-registrationcode
Set user registration code
Base Command
safewalk-set-user-registrationcode
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| expiration | Expiration. | Optional |
| attempts-left | attempts-left. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-send-user-registrationcode
Send user registration code
Base Command
safewalk-send-user-registrationcode
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-create-user-token-virtual
Create user virtual token
Base Command
safewalk-create-user-token-virtual
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-create-user-token-fastauth
Create user FastAuth Token
Base Command
safewalk-create-user-token-fastauth
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| serial-number | Serial number. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-create-user-token-totpmobile
Create user TopMobile Token
Base Command
safewalk-create-user-token-totpmobile
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| serial-number | Serail number. | Optional |
| password-required | Password required. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-create-user-token-totmobilehybrid
Create user TotMobileHybrid
Base Command
safewalk-create-user-token-totmobilehybrid
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| serial-number | Serial number. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-create-user-token-physical
Create user Physical Token
Base Command
safewalk-create-user-token-physical
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| serial-number | serial-number. | Optional |
| password-required | password-required. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-create-user-token-backup
Create user Backup Token
Base Command
safewalk-create-user-token-backup
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| password-required | password-required. | Optional |
| backuptoken-timeout | backuptoken-timeout. | Optional |
| backuptoken_attempts | backuptoken_attempts. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-set-user-backuptoken-settings
Set user backup token
Base Command
safewalk-set-user-backuptoken-settings
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| backup-password-required | backup-password-required. | Optional |
| backuptoken-attempts | backuptoken-attempts. | Optional |
| backuptoken-timeout | backuptoken-timeout. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-set-user-general-settings
Set user general settings
Base Command
safewalk-set-user-general-settings
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| user-storage | User storage. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-set-user-hotpauthentication-settings
Set user hotpauthentication settings
Base Command
safewalk-set-user-hotpauthentication-settings
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| hotp-accept-tolerance | hotp-accept-tolerance. | Optional |
| hotp-resend-tolerance | hotp-resend-tolerance. | Optional |
| hotp-resend-timeout | hotp-resend-timeout. | Optional |
| hotp-password_required | hotp-password_required. | Optional |
| hotp-flex-password-required | hotp-flex-password-required. | Optional |
| hotp-flex-pin-password-required | hotp-flex-pin-password-required. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-set-user-sesamiauthentication-settings
Set user sesamiauthentication setttings
Base Command
safewalk-set-user-sesamiauthentication-settings
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| sesami_mobile_password_required | sesami_mobile_password_required. | Optional |
| sesami_slim_password_required | sesami_slim_password_required. | Optional |
| gaia_ttw_level | gaia_ttw_level. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-set-user-totpauthentication-settings
Set user totpauthentication settings
Base Command
safewalk-set-user-totpauthentication-settings
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| totp-accept-tolerance | totp-accept-tolerance. | Optional |
| totp-resend-tolerance | totp-resend-tolerance. | Optional |
| totp-resend-timeout | totp-resend-timeout. | Optional |
| totp-password-required | totp-password-required. | Optional |
| totp-flex-password-required | totp-flex-password-required. | Optional |
| totp-flex-pin-password-required | totp-flex-pin-password-required. | Optional |
| totp-mobile-password-required | totp-mobile-password-required. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-set-user-userauthentication-settings
Set user userauthentication settings
Base Command
safewalk-set-user-userauthentication-settings
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| multiple-step-auth-timeout | multiple-step-auth-timeout. | Optional |
| allow-password | allow-password. | Optional |
| allow-password-for-registration | allow-password-for-registration. | Optional |
| max-allowed-failures | max-allowed-failures. | Optional |
| allow-access-when-pwd-expired | allow-access-when-pwd-expired. | Optional |
| allow-password-reset-when-forgot-pwd | allow-password-reset-when-forgot-pwd. | Optional |
| min-otp-length | min-otp-length. | Optional |
| max-otp-length | max-otp-length. | Optional |
| dos-tmp-lockdown-max-fail-authentications | dos-tmp-lockdown-max-fail-authentications. | Optional |
| dos-tmp-lockdown-time-interval-in-seconds | dos-tmp-lockdown-time-interval-in-seconds. | Optional |
| dos-tmp-lockdown-time-in-seconds | dos-tmp-lockdown-time-in-seconds. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-set-user-virtualauthentication-settings
Set user virtualauthentication settings
Base Command
safewalk-set-user-virtualauthentication-settings
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| virtual-device-accept-tolerance | Virtual device accept tolerance. | Optional |
| virtual-device-gateways | Virtual device gateways. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-create-user
Create user
Base Command
safewalk-create-user
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Required |
| password | Password. | Required |
| firstname | First Name. | Required |
| lastname | Last Name. | Required |
| mobilephone | Mobile Phone. | Required |
| email. | Required |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-delete-user
Delete user
Base Command
safewalk-delete-user
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
safewalk-update-user-group
Update user group
Base Command
safewalk-update-user-group
Input
| Argument Name | Description | Required |
|---|---|---|
| username | Username. | Optional |
| new-group-name | New user group. | Optional |
Context Output
There is no context output for this command.
Human Readable Output
Configuration parameters
first_fetch— First fetch timestamp (<number> <time unit>, e.g., 12 hours, 7 days)max_fetch— Max fetchurl— Server URL (e.g. https://soar.monstersofhack.com) (required)isFetch— Fetch incidentsincidentType— Incident typeapikey— API Key (required)insecure— Trust any certificate (not secure)proxy— Use system proxy settingsfeed— Fetch indicatorsincidentFetchInterval— Incidents Fetch IntervalfeedReputation— Indicator ReputationfeedReliability— Source Reliability (required)feedExpirationPolicy—feedExpirationInterval—feedFetchInterval— Feed Fetch IntervalfeedBypassExclusionList— Bypass exclusion listfeedTags— Tagstlp_color— Traffic Light Protocol Color
Commands (34)
-
safewalk-add-user-groupAdd user group.
-
safewalk-create-userCreate user.
-
safewalk-create-user-token-backupCreate user Backup Token.
-
safewalk-create-user-token-fastauthCreate user FastAuth Token.
-
safewalk-create-user-token-physicalCreate user Physical Token.
-
safewalk-create-user-token-totmobilehybridCreate user TotMobileHybrid.
-
safewalk-create-user-token-totpmobileCreate user TopMobile Token.
-
safewalk-create-user-token-virtualCreate user virtual token.
-
safewalk-delete-userDelete user.
-
safewalk-delete-user-accessattemptsDelete user access attempts.
-
safewalk-delete-user-tokenDelete user token.
-
safewalk-get-ldap-usersSearch LDAP users.
-
safewalk-get-ldapsGet LDAP configuration.
-
safewalk-get-transactionlogDisplay transaction log.
-
safewalk-get-user-accessattemptsGet user access attempts.
-
safewalk-get-user-groupGet user group.
-
safewalk-get-user-personalinformationGet users personal information.
-
safewalk-get-user-registrationcodeGet user registration code.
-
safewalk-get-user-settingsGet user settings.
-
safewalk-get-user-tokensGet user tokens.
-
safewalk-get-usersSearch local users.
-
safewalk-remove-user-groupRemove user group.
-
safewalk-send-user-registrationcodeSend user registration code.
-
safewalk-send-user-virtualtokenSend user virtual token.
-
safewalk-set-user-backuptoken-settingsSet user backup token.
-
safewalk-set-user-general-settingsSet user general settings.
-
safewalk-set-user-hotpauthentication-settingsSet user hotpauthentication settings.
-
safewalk-set-user-personalinformationSet user personal information.
-
safewalk-set-user-registrationcodeSet user registration code.
-
safewalk-set-user-sesamiauthentication-settingsSet user sesamiauthentication setttings.
-
safewalk-set-user-totpauthentication-settingsSet user totpauthentication settings.
-
safewalk-set-user-userauthentication-settingsSet user userauthentication settings.
-
safewalk-set-user-virtualauthentication-settingsSet user virtualauthentication settings.
-
safewalk-update-user-groupUpdate user group.
import json import urllib3 from CommonServerPython import * urllib3.disable_warnings() class Client(BaseClient): def get_transactionlog(self, page, search, locked) -> Dict[str, Any]: if page is None: page = 1 p_search = "" if search is not None and search != "": p_search = f"&search={search}" p_locked = "" if locked is not None and locked: p_locked = "&locked={}".format("true") return self._http_request(method="GET", url_suffix=f"/transactionlog/?page={page}{p_search}{p_locked}", resp_type="text") def get_users(self, page, search, locked) -> Dict[str, Any]: if page is None: page = 1 p_search = "" if search is not None and search != "": p_search = f"&search={search}" p_locked = "" if locked is not None and locked: p_locked = "&locked={}".format("true") return self._http_request(method="GET", url_suffix=f"/userlist/?page={page}{p_search}{p_locked}", resp_type="text") def get_ldap_users(self, page, search, locked, ldap) -> Dict[str, Any]: if page is None: page = 1 p_search = "" if search is not None and search != "": p_search = f"&search={search}" p_locked = "" if locked is not None and locked: p_locked = "&locked={}".format("true") return self._http_request(method="GET", url_suffix=f"/userlist/{ldap}/?page={page}{p_search}{p_locked}", resp_type="text") def get_ldaps(self) -> Dict[str, Any]: return json.loads(self._http_request(method="GET", url_suffix="/ldapconfiguration/", resp_type="text")) def get_user_personalinformation(self, username) -> Dict[str, Any]: return self._http_request(method="GET", url_suffix=f"/user/{username}/", resp_type="text") def set_user_personalinformation(self, username, email, mobile_phone) -> Dict[str, Any]: post_params = {} if email: post_params["email"] = email if mobile_phone: post_params["mobile_phone"] = mobile_phone return self._http_request(method="PUT", url_suffix="/user/{username}/", json_data=post_params, resp_type="text") def get_user_accessattempts(self, username) -> Dict[str, Any]: return self._http_request(method="GET", url_suffix=f"/user/{username}/access_attempt/", resp_type="text") def delete_user_accessattempts(self, username) -> Dict[str, Any]: return self._http_request(method="DELETE", url_suffix=f"/user/{username}/access_attempt/", resp_type="text") # Get "params" to generalize all token types. # Said argument must be a dictionary or json with the data corresponding to the token to be registered def create_user_token(self, username, post_params) -> Dict[str, Any]: return self._http_request(method="POST", url_suffix=f"/user/{username}/devices/", json_data=post_params, resp_type="text") def update_user_token(self, username, token_devicetype, token_serialnumber, post_params) -> Dict[str, Any]: return self._http_request( method="PUT", url_suffix=f"/user/{username}/devices/{token_devicetype}/{token_serialnumber}/", json_data=post_params, resp_type="text", ) def get_user_tokens(self, username) -> Dict[str, Any]: return self._http_request(method="GET", url_suffix=f"/user/{username}/devices/", resp_type="text") def delete_user_token(self, username, token_devicetype, token_serialnumber) -> Dict[str, Any]: return self._http_request( method="DELETE", url_suffix=f"/user/{username}/devices/{token_devicetype}/{token_serialnumber}/", resp_type="text" ) def send_user_token(self, username, token_devicetype, token_serialnumber) -> Dict[str, Any]: return self._http_request( method="POST", url_suffix=f"/user/{username}/devices/{token_devicetype}/{token_serialnumber}/send/", resp_type="text" ) def send_user_virtualtoken(self, username, token_devicetype, token_serialnumber) -> Dict[str, Any]: return self._http_request( method="POST", url_suffix=f"/devices/{token_devicetype}/{token_serialnumber}/code/", resp_type="text" ) def get_user_settings(self, username) -> Dict[str, Any]: return self._http_request(method="GET", url_suffix=f"/user/{username}/settings/", resp_type="text") # Get "params" to generalize all configuration items. # This argument must be a dictionary or json with the items that you want to modify def set_user_settings(self, username, post_params) -> Dict[str, Any]: return self._http_request( method="PATCH", url_suffix=f"/user/{username}/settings/", json_data=post_params, resp_type="text" ) def get_user_group(self, username) -> Dict[str, Any]: return self._http_request(method="GET", url_suffix=f"/user/{username}/group/", resp_type="text") def add_user_group(self, username, new_group_name) -> Dict[str, Any]: post_params = {"username": username} return self._http_request( method="POST", url_suffix=f"/group/{new_group_name}/member/", json_data=post_params, resp_type="text" ) def remove_user_group(self, username, old_group_name) -> Dict[str, Any]: return self._http_request(method="DELETE", url_suffix=f"/group/{old_group_name}/member/{username}/", resp_type="text") def get_user_registrationcode(self, username) -> Dict[str, Any]: return self._http_request(method="GET", url_suffix=f"/user/{username}/registrationtoken/", resp_type="text") def set_user_registrationcode(self, username, expiration, attempts_left) -> Dict[str, Any]: post_params = { "username": username, "expiration": expiration, "attempts_left": attempts_left, "sent_on": "", "sent_by": "", "token": "", } return self._http_request( method="POST", url_suffix=f"/user/{username}/registrationtoken/", json_data=post_params, resp_type="text" ) def delete_user_registrationcode(self, username) -> Dict[str, Any]: return self._http_request(method="DELETE", url_suffix=f"/user/{username}/registrationtoken/", resp_type="text") def send_user_registrationcode(self, username) -> Dict[str, Any]: return self._http_request(method="POST", url_suffix=f"/user/{username}/registrationtoken/send/", resp_type="text") def create_user(self, username, password, firstname, lastname, mobilephone, email): post_params = { "username": username, "password": password, "first_name": firstname, "last_name": lastname, "mobile_phone": mobilephone, "email": email, } return self._http_request(method="POST", url_suffix="/user/", json_data=post_params, resp_type="text") def delete_user(self, username): return self._http_request(method="DELETE", url_suffix=f"/user/{username}/", resp_type="text") def get_transactionlog(client, args): page = args.get("page") search = args.get("search") locked = args.get("locked") result_raw = client.get_transactionlog(page, search, locked) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get Transaction Log Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetTransactionLog.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_users(client, args): page = args.get("page") search = args.get("search") locked = args.get("locked") result_raw = client.get_users(page, search, locked) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get User Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetUsers.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_ldap_users(client, args): page = args.get("page") search = args.get("search") locked = args.get("locked") ldap = args.get("ldap") result_raw = client.get_ldap_users(page, search, locked, ldap) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get Ldap users Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetLdapUsers.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_ldaps(client, args): result_raw = client.get_ldaps() if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get Ldaps Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetLdaps.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_user_personalinformation(client, args): username = args.get("username") result_raw = client.get_user_personalinformation(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get User Personal Information Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetUserPersonalInformation.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_personalinformation(client, args): username = args.get("username") email = args.get("email") mobile_phone = args.get("mobile_phone") result_raw = client.set_user_personalinformation(username, email, mobile_phone) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User Personal Information Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserPersonalInformation.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_user_accessattempts(client, args): username = args.get("username") result_raw = client.get_user_accessattempts(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get User Access Attempts Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetUserAccessAttempts.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def delete_user_accessattempts(client, args): username = args.get("username") result_raw = client.delete_user_accessattempts(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Delete User Access Attempts Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="DeleteUserAccessAttempts.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def create_user_token_virtual(client, args): username = args.get("username") post_params = {"device_type": "Virtual"} result_raw = client.create_user_token(username, post_params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Create User Token Virtual Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="CreateUserTokenVirtual.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def create_user_token_fastauth(client, args): username = args.get("username") post_params = { "device_type": "Fast:Auth:Mobile:Asymmetric", "serial_number": args.get("serial-number"), "password_required": "", } result_raw = client.create_user_token(username, post_params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Create User Token Fast Auth Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="CreateUserTokenFastAuth.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def create_user_token_totpmobile(client, args): username = args.get("username") post_params = { "device_type": "TOTP:Mobile", "serial_number": args.get("serial-number"), "password_required": args.get("password-required"), } result_raw = client.create_user_token(username, post_params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Create User Token Totp Mobile Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="CreateUserTokenTotpMobile.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def create_user_token_totmobilehybrid(client, args): username = args.get("username") post_params = {"device_type": "TOTP:Mobile:Hybrid", "serial_number": args.get("serial-number"), "password_required": ""} result_raw = client.create_user_token(username, post_params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Create User Token Tot Mobile Hybrid Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="CreateUserTokenTotMobileHybrid.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def create_user_token_physical(client, args): username = args.get("username") post_params = { "device_type": args.get("devicetype"), "serial_number": args.get("serial-number"), "password_required": args.get("password-required"), } result_raw = client.create_user_token(username, post_params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Create User Token Physical Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="CreateUserTokenPhysical.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def create_user_token_backup(client, args): username = args.get("username") post_params = { "device_type": "Backup", "serial_number": "", "password_required": args.get("password-required"), "backuptoken_timeout": args.get("backuptoken-timeout"), "backuptoken_attempts": args.get("backuptoken_attempts"), "backuptoken_gateways": "", } result_raw = client.create_user_token(username, post_params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Create User Token Backup Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="CreateUserTokenBackup.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results # See def update_user_token(client, args): username = args.get("username") token_devicetype = args.get("devicetype") token_serialnumber = args.get("serialnumber") post_params = args.get("params") result_raw = client.update_user_token(username, token_devicetype, token_serialnumber, post_params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Update User Token Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="UpdateUserToken.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_user_tokens(client, args): username = args.get("username") result_raw = client.get_user_tokens(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get User Tokens Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetUserTokens.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def delete_user_token(client, args): username = args.get("username") token_devicetype = args.get("devicetype") token_serialnumber = args.get("serialnumber") result_raw = client.delete_user_token(username, token_devicetype, token_serialnumber) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Delete User Token Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="DeleteUserToken.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def send_user_token(client, args): username = args.get("username") token_devicetype = args.get("devicetype") token_serialnumber = args.get("serialnumber") result_raw = client.send_user_token(username, token_devicetype, token_serialnumber) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Send User Token Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SendUserToken.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def send_user_virtualtoken(client, args): username = args.get("username") token_devicetype = args.get("devicetype") token_serialnumber = args.get("serialnumber") result_raw = client.send_user_virtualtoken(username, token_devicetype, token_serialnumber) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Send User Virtual Token Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SendUserVirtualToken.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_user_settings(client, args): username = args.get("username") result_raw = client.get_user_settings(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get User Settings Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetUserSettings.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_backuptoken_settings(client, args): username = args.get("username") backup_password_required = args.get("backup-password-required") backuptoken_attempts = args.get("backuptoken-attempts") backuptoken_timeout = args.get("backuptoken-timeout") params = {} if not backup_password_required: params["backup_password_required"] = backup_password_required if not backuptoken_attempts: params["backuptoken_attempts"] = backuptoken_attempts if not backuptoken_timeout: params["backuptoken_timeout"] = backuptoken_timeout result_raw = client.set_user_settings(username, params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User Backup Token Settings Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserBackupTokenSettings.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_general_settings(client, args): username = args.get("username") user_storage = args.get("user-storage") params = {} if not user_storage: params["user_storage"] = user_storage result_raw = client.set_user_settings(username, params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User General Settings Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserGeneralSettings.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_hotpauthentication_settings(client, args): username = args.get("username") hotp_accept_tolerance = args.get("hotp-accept-tolerance") hotp_resend_tolerance = args.get("hotp-resend-tolerance") hotp_resend_timeout = args.get("hotp-resend-timeout") hotp_password_required = args.get("hotp-password_required") hotp_flex_password_required = args.get("hotp-flex-password-required") hotp_flex_pin_password_required = args.get("hotp-flex-pin-password-required") params = {} if not hotp_accept_tolerance: params["hotp_accept_tolerance"] = hotp_accept_tolerance if not hotp_resend_tolerance: params["hotp_resend_tolerance"] = hotp_resend_tolerance if not hotp_resend_timeout: params["hotp_resend_timeout"] = hotp_resend_timeout if not hotp_password_required: params["hotp_password_required"] = hotp_password_required if not hotp_flex_password_required: params["hotp_flex_password_required"] = hotp_flex_password_required if not hotp_flex_pin_password_required: params["hotp_flex_pin_password_required"] = hotp_flex_pin_password_required result_raw = client.set_user_settings(username, params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User Hotp Authentication Settings Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserHotpAuthenticationSettings.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_sesamiauthentication_settings(client, args): username = args.get("username") sesami_mobile_password_required = args.get("sesami_mobile_password_required") sesami_slim_password_required = args.get("sesami_slim_password_required") gaia_ttw_level = args.get("gaia_ttw_level") params = {} if not sesami_mobile_password_required: params["sesami_mobile_password_required"] = sesami_mobile_password_required if not sesami_slim_password_required: params["sesami_slim_password_required"] = sesami_slim_password_required if not gaia_ttw_level: params["gaia_ttw_level"] = gaia_ttw_level result_raw = client.set_user_settings(username, params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User Sesami Authentication Settings Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserSesamiAuthenticationSettings.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_totpauthentication_settings(client, args): username = args.get("username") totp_accept_tolerance = args.get("totp-accept-tolerance") totp_resend_tolerance = args.get("totp-resend-tolerance") totp_resend_timeout = args.get("totp-resend-timeout") totp_password_required = args.get("totp-password-required") totp_flex_password_required = args.get("totp-flex-password-required") totp_flex_pin_password_required = args.get("totp-flex-pin-password-required") totp_mobile_password_required = args.get("totp-mobile-password-required") params = {} if not totp_accept_tolerance: params["totp_accept_tolerance"] = totp_accept_tolerance if not totp_resend_tolerance: params["totp_resend_tolerance"] = totp_resend_tolerance if not totp_resend_timeout: params["totp_resend_timeout"] = totp_resend_timeout if not totp_password_required: params["totp_password_required"] = totp_password_required if not totp_flex_password_required: params["totp_flex_password_required"] = totp_flex_password_required if not totp_flex_pin_password_required: params["totp_flex_pin_password_required"] = totp_flex_pin_password_required if not totp_mobile_password_required: params["totp_mobile_password_required"] = totp_mobile_password_required result_raw = client.set_user_settings(username, params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User Totp Authentication Settings Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserTotpAuthenticationSettings.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_userauthentication_settings(client, args): username = args.get("username") multiple_step_auth_timeout = args.get("multiple-step-auth-timeout") allow_password = args.get("allow-password") allow_password_for_registration = args.get("allow-password-for-registration") max_allowed_failures = args.get("max-allowed-failures") allow_access_when_pwd_expired = args.get("allow-access-when-pwd-expired") allow_password_reset_when_forgot_pwd = args.get("allow-password-reset-when-forgot-pwd") min_otp_length = args.get("min-otp-length") max_otp_length = args.get("max-otp-length") dos_tmp_lockdown_max_fail_authentications = args.get("dos-tmp-lockdown-max-fail-authentications") dos_tmp_lockdown_time_interval_in_seconds = args.get("dos-tmp-lockdown-time-interval-in-seconds") dos_tmp_lockdown_time_in_seconds = args.get("dos-tmp-lockdown-time-in-seconds") params = {} if not multiple_step_auth_timeout: params["multiple_step_auth_timeout"] = multiple_step_auth_timeout if not allow_password: params["allow_password"] = allow_password if not allow_password_for_registration: params["allow_password_for_registration"] = allow_password_for_registration if not max_allowed_failures: params["max_allowed_failures"] = max_allowed_failures if not allow_access_when_pwd_expired: params["allow_access_when_pwd_expired"] = allow_access_when_pwd_expired if not allow_password_reset_when_forgot_pwd: params["allow_password_reset_when_forgot_pwd"] = allow_password_reset_when_forgot_pwd if not min_otp_length: params["min_otp_length"] = min_otp_length if not max_otp_length: params["max_otp_length"] = max_otp_length if not dos_tmp_lockdown_max_fail_authentications: params["dos_tmp_lockdown_max_fail_authentications"] = dos_tmp_lockdown_max_fail_authentications if not dos_tmp_lockdown_time_interval_in_seconds: params["dos_tmp_lockdown_time_interval_in_seconds"] = dos_tmp_lockdown_time_interval_in_seconds if not dos_tmp_lockdown_time_in_seconds: params["dos_tmp_lockdown_time_in_seconds"] = dos_tmp_lockdown_time_in_seconds result_raw = client.set_user_settings(username, params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User User Authentication Settings Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserUserAuthenticationSettings.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_virtualauthentication_settings(client, args): username = args.get("username") virtual_device_accept_tolerance = args.get("virtual-device-accept-tolerance") virtual_device_gateways = args.get("virtual-device-gateways") params = {} if not virtual_device_accept_tolerance: params["virtual_device_accept_tolerance"] = virtual_device_accept_tolerance if not virtual_device_gateways: params["virtual_device_gateways"] = virtual_device_gateways result_raw = client.set_user_settings(username, params) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User Virtual Authentication Settings Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserVirtualAuthenticationSettings.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_user_group(client, args): username = args.get("username") result_raw = client.get_user_group(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get User Group Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetUserGroup.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def update_user_group(client, args): username = args.get("username") new_group_name = args.get("new-group-name") result_raw = client.get_user_group(username) old_group_name = None for group in result_raw.get("groups"): if bool(group.get("is_member")): old_group_name = group.get("name") if old_group_name and new_group_name: client.remove_user_group(username, old_group_name) client.add_user_group(username, new_group_name) result = {"message": "Successfully updated"} if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Update User Group Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="UpdateUserGroup.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def add_user_group(client, args): username = args.get("username") new_group_name = args.get("new-group-name") result_raw = client.add_user_group(username, new_group_name) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Add User Group Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="AddUserGroup.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def remove_user_group(client, args): username = args.get("username") old_group_name = args.get("old-group-name") result_raw = client.remove_user_group(username, old_group_name) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Remove User Group Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="RemoveUserGroup.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def get_user_registrationcode(client, args): username = args.get("username") result_raw = client.get_user_registrationcode(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Get User Registration Code Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="GetUserRegistrationCode.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def set_user_registrationcode(client, args): username = args.get("username") expiration = args.get("expiration") attempts_left = args.get("attempts-left") result_raw = client.set_user_registrationcode(username, expiration, attempts_left) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Set User Registration Code Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SetUserRegistrationCode.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def delete_user_registrationcode(client, args): username = args.get("username") result_raw = client.delete_user_registrationcode(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Delete User Registration Code Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="DeleteUserRegistrationCode.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def send_user_registrationcode(client, args): username = args.get("username") result_raw = client.send_user_registrationcode(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Send User Registration Code Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="SendUserRegistrationCode.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def create_user(client, args): username = args.get("username") password = args.get("password") firstname = args.get("firstname") lastname = args.get("lastname") mobilephone = args.get("mobilephone") email = args.get("email") result_raw = client.create_user(username, password, firstname, lastname, mobilephone, email) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Create User Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="CreateUser.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def delete_user(client, args): username = args.get("username") result_raw = client.delete_user(username) if result_raw: result_raw = json.loads(result_raw) result = remove_empty_elements(result_raw) else: result = {} readable_output = tableToMarkdown( "Delete User Results", result, headers=list(result.keys()), headerTransform=string_to_table_header, ) command_results = CommandResults( readable_output=readable_output, outputs_prefix="DeleteUser.Result", outputs_key_field="", outputs=result, raw_response=result_raw, ) return command_results def test_module(client): results = client.get_transactionlog(None, None, None) if results: results = json.loads(results).get("results") if results and len(results) > 0: if results[0].get("reason_detail") == "Invalid credentials": return "Failed to run test, invalid credentials." else: return "ok" return None else: return "Failed to run test." def main(): params = demisto.params() command = demisto.command() args = demisto.args() base_url = params.get("url") base_url = base_url + "/api/v1/admin/" demisto.info("BASE_URL" + base_url) verify_certificate = not params.get("insecure", False) auth_access_token = params.get("apikey") proxy = params.get("proxy", False) demisto.debug(f"Command being called is {command}") try: client = Client( base_url=base_url, verify=verify_certificate, headers={"Authorization": f"Bearer {auth_access_token}"}, proxy=proxy ) if command == "safewalk-get-transactionlog": result = get_transactionlog(client, args) return_results(result) if command == "safewalk-get-users": result = get_users(client, args) return_results(result) if command == "safewalk-get-ldap-users": result = get_ldap_users(client, args) return_results(result) if command == "safewalk-get-ldaps": result = get_ldaps(client, args) return_results(result) if command == "safewalk-get-user-personalinformation": result = get_user_personalinformation(client, args) return_results(result) if command == "safewalk-set-user-personalinformation": result = set_user_personalinformation(client, args) return_results(result) if command == "safewalk-get-user-accessattempts": result = get_user_accessattempts(client, args) return_results(result) if command == "safewalk-delete-user-accessattempts": result = delete_user_accessattempts(client, args) return_results(result) if command == "safewalk-create-user-token-virtual": result = create_user_token_virtual(client, args) return_results(result) if command == "safewalk-create-user-token-fastauth": result = create_user_token_fastauth(client, args) return_results(result) if command == "safewalk-create-user-token-totpmobile": result = create_user_token_totpmobile(client, args) return_results(result) if command == "safewalk-create-user-token-totmobilehybrid": result = create_user_token_totmobilehybrid(client, args) return_results(result) if command == "safewalk-create-user-token-physical": result = create_user_token_physical(client, args) return_results(result) if command == "safewalk-create-user-token-backup": result = create_user_token_backup(client, args) return_results(result) if command == "safewalk-update-user-token": result = update_user_token(client, args) return_results(result) if command == "safewalk-get-user-tokens": result = get_user_tokens(client, args) return_results(result) if command == "safewalk-delete-user-token": result = delete_user_token(client, args) return_results(result) if command == "safewalk-send-user-token": result = send_user_token(client, args) return_results(result) if command == "safewalk-send-user-virtualtoken": result = send_user_virtualtoken(client, args) return_results(result) if command == "safewalk-get-user-settings": result = get_user_settings(client, args) return_results(result) if command == "safewalk-set-user-backuptoken-settings": result = set_user_backuptoken_settings(client, args) return_results(result) if command == "safewalk-set-user-general-settings": result = set_user_general_settings(client, args) return_results(result) if command == "safewalk-set-user-hotpauthentication-settings": result = set_user_hotpauthentication_settings(client, args) return_results(result) if command == "safewalk-set-user-sesamiauthentication-settings": result = set_user_sesamiauthentication_settings(client, args) return_results(result) if command == "safewalk-set-user-totpauthentication-settings": result = set_user_totpauthentication_settings(client, args) return_results(result) if command == "safewalk-set-user-userauthentication-settings": result = set_user_userauthentication_settings(client, args) return_results(result) if command == "safewalk-set-user-virtualauthentication-settings": result = set_user_virtualauthentication_settings(client, args) return_results(result) if command == "safewalk-get-user-group": result = get_user_group(client, args) return_results(result) if command == "safewalk-update-user-group": result = update_user_group(client, args) return_results(result) if command == "safewalk-add-user-group": result = add_user_group(client, args) return_results(result) if command == "safewalk-remove-user-group": result = remove_user_group(client, args) return_results(result) if command == "safewalk-get-user-registrationcode": result = get_user_registrationcode(client, args) return_results(result) if command == "safewalk-set-user-registrationcode": result = set_user_registrationcode(client, args) return_results(result) if command == "safewalk-delete-user-registrationcode": result = delete_user_registrationcode(client, args) return_results(result) if command == "safewalk-send-user-registrationcode": result = send_user_registrationcode(client, args) return_results(result) if command == "safewalk-create-user": result = create_user(client, args) return_results(result) if command == "safewalk-delete-user": result = delete_user(client, args) return_results(result) if command == "test-module": result = test_module(client) return_results(result) # Log exceptions except Exception as e: return_error(f"Failed to execute {command} command. Error: {str(e)}") if __name__ in ("__main__", "__builtin__", "builtins"): main()