Code Monkey home page Code Monkey logo

Comments (3)

Jnchi avatar Jnchi commented on August 29, 2024

/etc/libnss-aad.conf

{
  "client": {
    "id": "1234abcd-1234-abcd-efgh-123456abcdef",
    "secret": "<url-encoded secret>"
  },
  "tenant": "<company>.onmicrosoft.com"
}

from pam_aad.

Jnchi avatar Jnchi commented on August 29, 2024

/etc/aad-config.json

{
    "tenant" : "<company>.onmicrosoft.com",
    "clientId" : "1234abcd-1234-abcd-efgh-123456abcdef",
    "clientSecret" : "secret="
}

/usr/local/bin/provision_users.py

import json
import logging
import os
import sys
import adal
import subprocess
import requests

# The information inside such file can be obtained via app registration.
# See https://github.com/AzureAD/azure-activedirectory-library-for-python/wiki/Register-your-application-with-Azure-Active-Directory
#
# {
#    "tenant" : "rrandallaad1.onmicrosoft.com",
#    "authorityHostUrl" : "https://login.microsoftonline.com",
#    "clientId" : "624ac9bd-4c1c-4687-aec8-b56a8991cfb3",
#    "clientSecret" : "verySecret=""
# }

config_file = (sys.argv[1] if len(sys.argv) == 2 else
                   os.environ.get('AAD_CONFIG_FILE'))

if config_file:
    with open(config_file, 'r') as f:
        parameters = f.read()
    config_opts = json.loads(parameters)
else:
    raise ValueError('Please provide config file with account information.')

context = adal.AuthenticationContext('https://login.microsoftonline.com/'
        + config_opts['tenant'], validate_authority=None)

token = context.acquire_token_with_client_credentials('00000002-0000-0000-c000-000000000000',
        config_opts['clientId'], config_opts['clientSecret'])

headers = {"Authorization": "Bearer " + token['accessToken']}
request = 'https://graph.windows.net/' + config_opts['tenant'] + '/users'
payload = {"api-version": '1.6'}
users = requests.get(request, headers=headers, params=payload).json()

users = users['value']

for user_name in users:
    nickname = user_name['mailNickname']
    if(subprocess.check_output(["id", nickname], shell=True)):
        subprocess.run(["useradd", "-mG", "sudo", nickname])

Modified from: https://github.com/AzureAD/azure-activedirectory-library-for-python

chmod +x /usr/local/bin/provision_users.py

(crontab -l 2>/dev/null; echo "0,30 * * * * /usr/local/bin/provision_users.py") | crontab -

Source: https://stackoverflow.com/questions/4880290/how-do-i-create-a-crontab-through-a-script

NOTE: Requires the Azure Active Directory Graph API permission Directory.Read.All, which requires Admin consent

from pam_aad.

Jnchi avatar Jnchi commented on August 29, 2024

libnss module rewritten from scratch and split out into its own repository (See: https://github.com/CyberNinjas/libnss_aad).

from pam_aad.

Related Issues (20)

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.