Skip to content

YubicoLabs/yed-spoke-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues Apache-2.0


Logo

YED ServiceNow Spoke

Integrate ServiceNow with the YED API to allow your workforce to request their YubiKey in the same way they make other IT requests
Explore the docs »

· Report Bug · Request Feature

Table of contents
  1. About The project
  2. Built with
  3. Getting started
  4. Next steps
  5. FAQs and common issues
  6. Contributing
  7. License
  8. Contact

About The Project

This project will demonstrate how to integrate the YubiEnterpriseDelivery API into a ServiceNow custom application. The end goal of this project is to allow your users to use your standard IT Services tool to request a YubiKey directly from your YubiEnterprise inventory.

Yubico Enterprise Delivery (YED) is a global service that helps organizations deliver YubiKeys to remote and in-office users. Organizations can automate delivery by integrating the YED REST API into their IT and service catalog flows.

ServiceNow IntegrationHub is a centralized place to build and manage integrations which is made up of a series of “Spokes”. Spokes are self-contained scoped applications that contain all of the artifacts that make up an integration, primarily “Actions”.

Disclaimer - This project is not meant to act as a production ready solution for all organizations. It is meant to demonstrate how sample Actions/Flows that are capable of making YED requests.

(back to top)

Built With

Prerequisites are covered in more detail in the full walkthrough for setting up a custom application.

(back to top)

Getting Started

Provided in the link below is a full walkthrough which will guide you to:

  • Create a custom application
  • Create a new catalog item for ordering YubiKey
  • Create the necessary Flows and Actions
  • Integrate the Flow with an approval process
  • Error reporting, and alerts

Note - There will be specific business requirements for your implementation. This guide will demonstrate our best practices to get you to a working solution - After you complete the guide please begin to experiment to tweak the solution to adhere to your requirements.

(back to top)

Next steps

Because this example is meant to act as a demo, there are a few items that need to be considered to make your deployment "production ready".

Policies to prevent abuse

This application will allow a user to order as many keys as they desire. Additional logic will need to be built to limit the number of orders based on your requirements

Extending Catalog Item

Our example assumes that your users information is all stored within ServiceNow. With the reality of work-from-home it's possible that the address in the users' ServiceNow account is not where they are currently working from.

You may need to create your own Catalog Form that allows a user to enter in their address.

Other items to consider for this are:

  • Telephone
  • Email
  • Product type and quantity

Don't forget to modify the data inputs when passing the request to your YED Action

Address Validation

If you are allowing the user to self enter their own address, then we advise that you perform some address validation on their input. YED has a method, /validate-address, which will indicate whether an address is shippable for Yubico.

Pre-validating an address before a submission will prevent an influx of shipments appearing in the console that will not ship due to address errors

Multi-Region PO support

The current demo is configured for a single region PO. You will need to use the proper API token for the user’s region, e.g. North America / Canada is one region, EMEA is a different region and each have their own associated API token.

More information can be found here

(back to top)

FAQs and Common Issues

Cancelling my Test Order

It should be noted that orders made through the YED API are made directly on your production inventory. YED does not currently support "sandbox" environments with fake data/inventory. During testing and development it is crucial that you not only delete orders directly from this application, but you must login to the YED Console to verify the order was removed, and to delete any lingering test shipments - Otherwise, your order will be processed and a key from your inventory will be shipped.

Orders are not processed for shipment until 3AM PST - So ensure your developers/testers are instructed to delete their shipments prior to closing their work day. This time is centrally configured across YED and cannot be edited.

Multi-Region Purchase Orders / Organizations

If organizations are shipping keys to both the US/Canada and to EMEA, two API tokens are required, as both regions are treated as different organizations.

A user will not be able to perform operations in a EU YED instance while logged in to their US/CAN instance (the same is true of the inverse).

Before implementing a solution you should consider how many YED organizations your company will be utilizing, and how to guide your users to the appropriate portal with the correct API key for their region.

This site will be updated in the future with Multi-Region PO Support.

More information on this can be found here

My API calls to YED are failing

There might be two reasons for this - You might not have configured your API secret, or your YED API URL is incorrect. See this section on creating credential aliases

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the Apache-2.0 License. See LICENSE for more information.

(back to top)

Contact

Yubico Developer Program

Project Link: https://github.com/YubicoLabs/yed-spoke-example

(back to top)

About

Example ServiceNow IntegrationHub spoke to interact with YubiEnterprise Delivery API

Resources

License

Stars

Watchers

Forks

Packages

No packages published