Coder Social home page Coder Social logo

androa / device Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nais/device

0.0 1.0 0.0 10.57 MB

naisdevice is a application suite that enables NAV developers to connect to internal resources in a secure and friendly manner.

Home Page: https://doc.nais.io/device/install

License: MIT License

Shell 3.14% Go 87.75% Makefile 2.71% Smarty 0.17% NSIS 4.48% Dockerfile 0.45% Jinja 1.29%

device's Introduction

naisdevice

naisdevice is a mechanism enabling NAVs developers to connect to internal resources in a secure and friendly manner.

Each resource is protected by a gateway, and the developer is only granted access to the gateway if all of the following requirements are met:

  • Has a valid nav.no account
  • Has accepted naisdevice terms and conditions
  • Device is healthy
  • Is member of the AAD access group for the gateway (e.g. to connect to team A's DB, you must be member of team A's AAD-group)

Deploying client changes

Executing make release-frontend is required for deploy of new naisdevice client to be released and made available for download/install/update.

key attributes

  • minimal attack surface
  • frequent key rotation
  • instantly reacting to relevant security events
  • improved auditlogs: who connected when and to what, as well as other relevant user events
  • moving away from traditional device management enables building a strong security culture through educating our users on client security instead of automatically configuring their computers

architecture

todo: simple visual describing:

  • apiserver coordinates configuration
  • device + gateway fetches config on a timer
  • naisdevice-health-checker informs apiserver of device health from Kolide
  • additionally: bootstrap-api used first time user connects/enrolls into the system

components

apiserver

The naisdevice apiserver main responsibility is to serve the device-agents and gateway-agents with configuration through a set of APIs.

It's database is master for all peers (devices and gateways) operating in the environment, as well as keeping track of and allocating IPs in the VPN's address space.

It calculates the appropriate configuration for the peers primarily based on two factors:

  1. Is the device owner authorized to use the gateway?
  2. Is the device in a healthy state?

If both is true, the device-agent and gateway-agent is informed with the necessary information in order for them to communicate.

The apiserver also:

  • exposes an endpoint for other trusted processes to inform about the health status of the devices. Currently this is the naisdevice-health-checker components
  • continuously checks the bootstrap-api for any pending enrollments requests and adds new devices.

device-agent

gateway-agent

bootstrap-api

FAQ

What is a healthy device?

How to install

See https://doc.nais.io/device

Next gen naisdevice

Components

device's People

Contributors

ahusby avatar audunstrand avatar chinatsu avatar christeredvartsen avatar erlingjd avatar frodesundby avatar henrikhorluck avatar jhrv avatar jksolbakken avatar jrtm avatar kimtore avatar mortenlj avatar muni10 avatar pcmoen avatar pjwalstrom avatar rbjornstad avatar sechmann avatar thokra-nav avatar toby1knby avatar tommytroen avatar toresbe avatar tronghn avatar x10an14 avatar x10an14-nav avatar ybelmekk avatar

Watchers

 avatar

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.