Giter VIP home page Giter VIP logo

idp-hook-updates's Introduction

Build CI published

IdP Hook Updates

Please note that this repository has been archived and will not be receiving any updates.

This project is designed to synchronize user identities between cloud based Identity Providers (IdPs) and cloud based Multi Factor Authentication (MFA) providers.
While some of the user identities synchronization can be achieved using the SCIM specification (RFC 7643), that specification does not not cover MFA use cases.

The project relies on IdPs to provide Webhooks for asynchronous notifications of user identity changes on one side, and relies on the MFA providers to provide administrative APIs to reflect these changes.
The project uses Hexagonal architecture to allow connecting different IdPs and MFA providers.

Supported Identity Providers

  • Okta
  • Auth0

Supported MFA Providers

  • Duo Security

Supported Cloud Providers

  • AWS
  • Azure
  • GCP

The Webhooks endpoint can run anywhere as long as it can get the IdP requests and invoke the MFA providers APIs.

Use Case Description

  1. Create sophisticated MFA policies:
    When a user enrolls an MFA device, the information the MFA provider collects is the user email and phone number. The user's profile information and group/role information are not transferred to the MFA provider.
    By using this integration, the profile information and group/role information are constantly synchronized to the MFA provider and can be used for creating sophisticated MFA policies.

  2. Simpler operations when a user cannot access an MFA device:
    If a user cannot access an MFA device, an admin needs to reset the MFA link in the IdP portal to trigger enrollment of a new MFA device for the user.
    When an admin resets the MFA for a user in the IdP portal, it deletes the link between the user and the MFA account; however, the user is still associated to the enrolled device in the MFA provider.
    In this case, when the user next logs in to the IdP and is required to add MFA, the MFA provider recognizes the user already has an enrolled device and does not prompt the user to enroll new devices.
    The workaround in this case is to delete the MFA device in the MFA portal as well.
    By using this integration, when an admin resets the MFA for a user in the IdP portal it also deletes the association between the user and the enrolled device in the MFA provider automatically.

Flow diagram

A user can update his profile details in the IdP service.
An admin can perform the following actions in the IdP service:

  • create/delete a user
  • create/rename/delete a group
  • associate/disassociate a user to a group
  • disable/reenable a user
  • reset MFA for a user

Installation

Prerequisites

  • yarn Package Manager
  • terraform Infrastructure provisioning tool

macOS

  1. Install Brew
  2. Install yarn - brew install yarn
  3. Install terraform - brew install terraform

Windows

  1. Install yarn
  2. Intsall terraform

Installing dependencies

Run yarn install

Create artifacts

Run yarn zip to create zip files with the hook function code that can be deployed using the instructions below

Instructions for deployment

The instructions below use terraform to automatically provision resources on your selected cloud provider, deploy the hook function code and register the hook in the Identity Provider service.

How to test the software

Run unit tests and code coverage yarn test

Unit tests are executed on every push to master and the status is shown in a badge on the top of this page.

Getting help

If you have questions, concerns, bug reports, etc., please create an issue against this repository.

idp-hook-updates's People

Contributors

dependabot[bot] avatar didithekli avatar eckelcu avatar julron avatar odedpeer avatar okuper avatar rhofschn avatar scburnet avatar vdineva avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

idp-hook-updates's Issues

Recreate the user after deleting the user in reset_mfa event

When we get a reset_mfa we delete the user in Duo.
We should re-create the user in Duo after deleting the user to maintain the user profile and group participation.
Then, when the user re-enrolls with Duo we already have the profile and group information for the user.

40004 error in Duo when creating a user in Okta and assigning a group during creation

When creating a user in Okta the admin can specify groups the user is part of:
image

This generates two events in the Okta hooks, one for creating the user and another for associating the user to a group. This is how it looks like in the Okta system report:
image

The code fetches the user groups in the "create user" flow and adds the user to the groups in OktaHooks. We don't need this. Okta sends separate events for "create user" and for "associate user to group".

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.