Coder Social home page Coder Social logo

rnwolfe / cisco-ise-extension Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 1.0 210 KB

A Google Chrome and Firefox Extension to expedite common Cisco ISE tasks.

License: MIT License

JavaScript 98.06% HTML 1.94%
chrome chrome-extension cisco cisco-ise ise

cisco-ise-extension's Introduction

handwavegif Hello!

About Me

โœ๏ธ I started out programming, then I did networking and security, and now I do both. ๐Ÿคทโ€โ™‚๏ธ

๐Ÿ’ป I like to build full-stack applications and make the day to day lives easier for network and other infrastructure engineers using automation and programming.

๐Ÿน I'm an avid craft cocktail hobbyist and at any time have a large amount of homemade liqueurs, infusions, and syrups. Check out some of my stuff here. As a result, when experimenting with new technologies, I use a cocktail recipe database as my go to example application.

๐Ÿงฉ I can solve a Rubik's cube in under 1 minute and 15 seconds. Working on getting below 1 minute ๐Ÿ˜ค!

๐Ÿ† Certifications

Cisco DevNet Professional DevNet 500 Cisco Certified Internetworking Expert (CCIE) Security #56911 Cisco DevNet Professional

๐Ÿ› ๏ธ My Tech Stack

These are the technologies and languages I use often and have proficiency in.

Languages, Markups, Styling

JavaScript TypeScript Python HTML CSS

Frameworks

Angular Ionic Bootstrap

Databases

MongoDB MySQL

The Rest

Git GitHub Visual Studio Code NPM Hugo Vuepress Docker Kubernetes AWS Heroku Heroku

โญ My Favorite Projects

https://github.com/rnwolfe/node-pxgrid https://github.com/rnwolfe/cisco-ise-extension

๐Ÿ“ซ How to reach me:

LinkedIn Twitter Follow

cisco-ise-extension's People

Contributors

rnwolfe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

davidearthos

cisco-ise-extension's Issues

trim whitespace off of selected text

Given a MAC address can easily be selected with undesired whitespace before/after it, automatically trim it off so that the selected text doesn't have to be perfect to run correctly.

related to #1, can fix at same time

validate selected text to ensure it is a mac address

The selected text that is passed to the extension is not currently validated before being used for ISE REST calls. This should be done to prevent unnecessary calls, as well as for general security practices.

password is stored using chrome.storage

Using the chrome.storage API is useful for the non-sensitive values since it persists in the Chrome runtime even if you close/re-open Chrome.

Unfortunately, chrome.storage does not seem to use any type of security and if the user's home directory is stolen, Chrome can be manually booted with those settings and make use of these settings. This doesn't necessarily mean they are stored is regular plain text; however, it does present a security concern.

Frankly, I'm not certain of the appropriate/accepted way of handling passwords in a chrome extension. Unfortunately, due to the use of Basic authorization in the ISE REST API, there's really no getting around having a base64 encoded string of the username/password (which can easily be decoded), or the actual username/password that will be used to produce the base64 encoded string used for Basic authorization.

use progress type notification for bulk updates

Can we consider using the progress type notification for bulk updates instead of having a barrage of update?

Failures can still send an additional notification of failure (perhaps with bulk updates a failure report should be produced so those MACs can be investigated?)

Re-structure group retrieval and handling

The identity groups retrieved from ISE were originally limited to 20 (the default per API request), but were updated to 100 (the max per API request). Now, the list can grow to beyond the number of items that can fit on the screen without scrolling. This is poor.

I need to update the retrieval to retrieve all groups (go through entire pagination), but also better handle group structure in the right-click context menu. The easiest way to do that is to create a sub-menu for each letter of the alphabet and sort the groups into relevant sub-menus. Given this would be excessive for small groups lists, this should only be done when the group list is too long (above 40, for example).

display new group name in success notification

Right now, the group's UUID is shown because that's the only information we have accessible at the time.

The simplest way would be to just regurgitate the text that was displayed on the menu item the user clicked; however, the chrome.contextMenus API doesn't provide that information onClick. So, all we have is the UUID.

While it would be useful to confirm to the user that the correct group was actually used, is it worth the extra API call on each move request to show it?

Options

  • Make API call to get group name from UUID.
  • Remove reference to which group the endpoint was moved into at all: [MAC] was successfully added to group!
  • Store groups locally in chrome.storage with { uuid: name } format on runtime start when building menu. Then lookup in chrome.storage when calling notification.

add support for bulk endpoint update

Support for bulk operations in list of only MAC addresses, e.g.

00:00:00:00:00:01
00:00:00:00:00:02
00-00-00-00-00-03
00-00-00-00-00-04
0000.0000.0005
0000.0000.0006

Also support for MACs in a list of random data (extract MACs from data) as if highlighting from Context Visibility or Live Logs page, e.g.

00:00:00:00:00:01
Xerox-Device
 	
00:00:00:00:00:02

create useful notification for unauthorized PUT request

The extension currently errors for HTTP 401 status code on the initial menu build, but a use could have enough permissions to retrieve the groups (and even retrieve endpoint information), but not enough to change them.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.