{
  "version": "Notebook/1.0",
  "items": [
    {
      "type": 1,
      "content": {
        "json": "**NOTE**: This workbook uses the Cisco Duo CCF tables **DuoAuthentication_CL**, **DuoActivity_CL**, and **DuoTelephony_CL**. Enable the corresponding CCF data connectors to populate each data source."
      },
      "name": "text - 8"
    },
    {
      "type": 9,
      "content": {
        "version": "KqlParameterItem/1.0",
        "parameters": [
          {
            "id": "cd8447d9-b096-4673-92d8-2a1e8291a125",
            "version": "KqlParameterItem/1.0",
            "name": "TimeRange",
            "type": 4,
            "description": "Sets the time name for analysis",
            "value": {
              "durationMs": 7776000000
            },
            "typeSettings": {
              "selectableValues": [
                {
                  "durationMs": 900000
                },
                {
                  "durationMs": 3600000
                },
                {
                  "durationMs": 86400000
                },
                {
                  "durationMs": 604800000
                },
                {
                  "durationMs": 2592000000
                },
                {
                  "durationMs": 7776000000
                }
              ]
            },
            "timeContext": {
              "durationMs": 86400000
            }
          }
        ],
        "style": "pills",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces"
      },
      "name": "parameters - 11"
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "query": "union isfuzzy=true DuoAuthentication_CL, DuoActivity_CL, DuoTelephony_CL\r\n| make-series TotalEvents = count() default = 0 on TimeGenerated from {TimeRange:start} to {TimeRange:end} step {TimeRange:grain};",
        "size": 0,
        "title": "Events Over Time",
        "color": "greenDark",
        "timeContext": {
          "durationMs": 0
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "visualization": "timechart",
        "graphSettings": {
          "type": 0
        }
      },
      "customWidth": "40",
      "name": "query - 12",
      "styleSettings": {
        "maxWidth": "55"
      }
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "query": "union isfuzzy=true\n    (DuoAuthentication_CL | project Country = AccessDeviceCountry),\n    (DuoActivity_CL | project Country = AccessDeviceCountry)\n| where isnotempty(Country)\n| summarize count() by Country",
        "size": 0,
        "title": "Countries summary",
        "timeContext": {
          "durationMs": 0
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "visualization": "piechart"
      },
      "customWidth": "30",
      "name": "query - 11"
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "query": "let tot_dvc = DuoAuthentication_CL\r\n| summarize e_count=dcount(AuthDeviceName)\r\n| extend Title='Authentication Devices';\r\nlet tot_usr = DuoAuthentication_CL\r\n| where Result =~ 'success'\r\n| summarize e_count=dcount(UserName)\r\n| extend Title='Total Users';\r\nlet tot_adm = DuoActivity_CL\r\n| where ActorType =~ 'admin'\r\n| summarize e_count=dcount(ActorName)\r\n| extend Title='Admin users';\r\nunion isfuzzy=true tot_dvc, tot_usr, tot_adm\r\n| order by e_count",
        "size": 3,
        "title": "Summary",
        "timeContext": {
          "durationMs": 0
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "visualization": "tiles",
        "tileSettings": {
          "titleContent": {
            "columnMatch": "Title",
            "formatter": 1
          },
          "leftContent": {
            "columnMatch": "e_count",
            "formatter": 12,
            "formatOptions": {
              "palette": "auto"
            },
            "numberFormat": {
              "unit": 17,
              "options": {
                "style": "decimal",
                "maximumFractionDigits": 2,
                "maximumSignificantDigits": 3
              }
            }
          },
          "secondaryContent": {
            "columnMatch": "Trend",
            "formatter": 9,
            "formatOptions": {
              "palette": "purple"
            }
          },
          "showBorder": false
        }
      },
      "customWidth": "25",
      "name": "query - 0",
      "styleSettings": {
        "maxWidth": "30"
      }
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "query": "union isfuzzy=true\r\n    (DuoAuthentication_CL | project SourceAddress = AccessDeviceIp),\r\n    (DuoActivity_CL | project SourceAddress = AccessDeviceIp)\r\n| where isnotempty(SourceAddress)\r\n| summarize count() by SourceAddress",
        "size": 3,
        "title": "Source Addresses",
        "timeContext": {
          "durationMs": 7776000000
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "visualization": "piechart"
      },
      "customWidth": "33",
      "name": "query - 3",
      "styleSettings": {
        "margin": "10",
        "padding": "10"
      }
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "query": "DuoAuthentication_CL\r\n| where isnotempty(UserName)\r\n| summarize count() by UserName\r\n| top 10 by count_",
        "size": 3,
        "title": "Top Users",
        "timeContext": {
          "durationMs": 7776000000
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "visualization": "piechart",
        "gridSettings": {
          "sortBy": [
            {
              "itemKey": "TotalEvents",
              "sortOrder": 2
            }
          ]
        },
        "sortBy": [
          {
            "itemKey": "TotalEvents",
            "sortOrder": 2
          }
        ]
      },
      "customWidth": "33",
      "name": "query - 2"
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "query": "DuoAuthentication_CL\n| where Result =~ 'success'\n| where isnotempty(AccessDeviceOs)\n| summarize e_count = count() by AccessDeviceOs\n| project-rename DeviceOS = AccessDeviceOs\n| order by e_count desc",
        "size": 0,
        "title": "Device OS Types",
        "timeContext": {
          "durationMs": 7776000000
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "visualization": "piechart"
      },
      "customWidth": "30",
      "name": "query - 10"
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "query": "DuoActivity_CL\r\n| where ActionName =~ 'admin_login'\r\n| extend Result = case(OutcomeResult =~ 'SUCCESS', '✅', OutcomeResult =~ 'FAILURE', '❌', 'Unknown')\r\n| project TimeGenerated, ActorName, Result\r\n",
        "size": 3,
        "title": "Admin login status",
        "timeContext": {
          "durationMs": 7776000000
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "visualization": "table"
      },
      "customWidth": "34",
      "name": "query - 1"
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "query": "DuoAuthentication_CL\r\n| project TimeGenerated, UserName, Result=strcat(iff(Result =~ 'success', '✅', '❌'))",
        "size": 0,
        "title": "User authentication status",
        "timeContext": {
          "durationMs": 7776000000
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "gridSettings": {
          "rowLimit": 50,
          "filter": true
        }
      },
      "customWidth": "40",
      "name": "query - 12",
      "styleSettings": {
        "maxWidth": "33"
      }
    },
    {
      "type": 3,
      "content": {
        "version": "KqlItem/1.0",
        "title": "User creation activity",
        "query": "DuoActivity_CL\n| where ActionName =~ 'user_create'\n| project TargetName, ActorName, AccessDeviceIp",
        "size": 0,
        "timeContext": {
          "durationMs": 7776000000
        },
        "timeContextFromParameter": "TimeRange",
        "queryType": 0,
        "resourceType": "microsoft.operationalinsights/workspaces",
        "visualization": "tiles",
        "gridSettings": {
          "filter": true
        },
        "tileSettings": {
          "titleContent": {
            "columnMatch": "TargetName"
          },
          "subtitleContent": {
            "columnMatch": "AccessDeviceIp",
            "formatter": 12,
            "formatOptions": {
              "palette": "purpleDark"
            }
          },
          "showBorder": false,
          "rowLimit": 25
        },
        "textSettings": {
          "style": "bignumber"
        }
      },
      "customWidth": "15",
      "name": "query - 10"
    }
  ],
  "fromTemplateId": "sentinel-CiscoDuoWorkbook",
  "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
}
