Posted on

Register a web application with Azure AD Portal App Registration to connect to a Microsoft 365 tenant

PowerShell Limits

Through Powershell it is possible to connect to a Microsoft 365 tenant to perform operations on users, groups and any other element of the tenant. When you use this tool, Powershell presents you with the mask for entering your account and password. You can write accounts and passwords directly in the Powershell script but it would be a serious security compromise.

Application

An alternative is to build a software that connects directly to the Tenant through customized keys present in the Tenant itself. In other words, it is necessary to communicate to the Tenant that there is a certain application that is authorized to access the Tenant. Furthermore, for each operation that you want to perform on the Tenant it is necessary to specify the appropriate permissions. To create these applications, we recommend that you follow the excellent tutorial “.Net Core console application for calling Microsoft Graph“.  This post proposes the images present in the previous tutorial only to specify how the application must be prepared on the Microsoft Tenant.

Register a web application with Azure AD Portal App Registration

Open a browser and navigate to the Azure Portal. Login using your account. Select the resource “Azure Active Directory”. On the left side menu, select “App regitstration”. Click New registration from the current page.

On the Register an application page, specify the following values:

  • Name = Name of your Application
  • Supported account types
  • Redirect URI
    • Type = Web
    • Value = https://localhost:8080   (*)

(*) The Redirect URI value must be unique within your domain. This value can be changed at a later time and does not need to point to a realy hosted URI.

It is now necessary to store 2 values that will be used in your application:

  • Application (client) ID
  • Directory (tenant) ID

Certificates & secrets

Click Certificates & secrets.

  1. Click New client secret.
  2. On the Add a client secret dialog, specify the following values:
    • Description = Your secret’s description
    • Expires = In 1 year (for example)
  3. Click Add.

After the screen has updated with the newly created client secret copy the VALUE of the client secret. This secret string is never shown again, so make sure you copy it now.

API permissions

Click API permissions.

  • Click Add a permission
  • On the Request API permissions panel select Microsoft Graph.

  • Select Application permissions.

Now you have to choose between the permissions to authorize your app. For example, to create an application to read alla information about Tenant’s users, in the “Select permissions” search box type “User”.Select User.Read.All from the filtered list. At the end, on the API permissions content blade, click Grant admin consent for the Tenant.

Summary of the data necessary for the application

Let’s see what data your application needs to connect and operate on the Microsoft Tenant.

  • applicationId = “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
  • applicationSecret = “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
  • tenantId = “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
  • redirectUri = “https://localhost:8080”;
  • domain = “yourtenant.onmicrosoft.com”;

Permissions

  • User.Read.All : Read all users’ full profiles
  • User.ReadWrite.All : Read and write all users’ full profiles
  • Group.ReadWrite.All : Read and write all groups
  • Notes.ReadWrite.All : Read and write all OneNote notebooks

Documentation

Posted on

Apache su Windows – AH00072: make_sock: could not bind to address [::]:80

Scenario

Sul vostro Windows,  Apache non parte. Andate nell’event viewer e trovate l’evento di errore :

AH00072: make_sock: could not bind to address [::]:80

Problema

Il problema è dovuto al fatto che una applicazione sta utilizzando la porta 80 del vostro sito su Apache. Come scoprire quale è questa applicazione ?

Aprite il command prompt (cmd). Digitate

netstat -ano

Vedete tutte le porte aperte del vostro computer occupate da una applicazione. Trovate la riga che (in questo caso) riguarda la porta 80. Alla colonna PID è indicato il numero del programma che sta usando la vostra porta.

Aprite task manager (gestione attività) , nella tab “Dettagli” attraverso la colonna PID trovate il programma che sta usando la vostra porta.

Soluzione

Avete 2 possibilità : o fermate il programma oppure, se il programma vi serve, cambiate la porta usata da questo programma, se possibile, oppure quella usata da Apache.

Se il programma che avete trovato attraverso il PID è System, significa che è lo stesso Windows a bloccare la porta. Aprite i servizi e dovete stoppare il servizio “Servizio Pubblicazione sul Web“. Dovrete anche settare la partenza in manuale, se invece fosse in Automatico perché altrimenti il giorno dopo vi si ripresenterebbe il problema.

Posted on

Cron job su raspberry

I cron job sono operazioni pianificate che possiamo fare eseguire autonomamente ad un certo orario al nostro raspberry.

Log di Cron

Se non siamo esperti di Cron un buon metodo per capire se in nostri job vengono eseguiti correttamente o se incorrono in errori è quello di abilitare il log dei Cron. Questi non è abilitato in installazione. Per farlo, dovete editare il file /etc/rsyslog.conf.

sudo nano /etc/rsyslog.conf

Togliete il segno di commento alla riga

# cron.* /var/log/cron.log

Dovete riavviare il raspberry. Cron.log è il vostro file di log

Operazioni di utente e operazioni di sistema

Il file Crontab contiene le vostre operazioni. Esiste un file crontab per ciascun utente. Per editarlo :

crontab -e

Se però volete fare eseguire una operazione pianificata che impatta sul sistema, come per esempio un riavvio ad una certa ora, dovete editare il file crontab dell’utente root

sudo crontab -e

Impostazione del job

Nel crontab ogni riga è l’impostazione di una operazione pianificata. Ogni operazione pianificata è composta da 5 numeri più il comando che si vuole inserire. I numeri in sequenza sono minuti (0-59), ore (0-23, 0 = mezzanotte), giorno (1-31), mese (1-12), giorno della settimana (0-6, 0 = domenica). Il simbolo * (asterisco) in una delle posizioni dice di non considerare quel determinato filtro.

Esempi :

30 3 * * * /usr/script/miocomando.sh

Il comando sopra deve essere eseguito ogni giorno alle 3.30

15 * * * * /usr/script/miocomando.sh

Il comando sopra deve essere eseguito al 15esimo minuto di ogni ora, per sempre. Quindi viene eseguito 24 volte in un giorno.

Impostazione del comando

Nel nostro esempio non stiamo eseguendo un comando linux , bensì uno script, una lista di comandi contenuti nel file miocomando.sh. Se, per esempio, vogliamo eseguire un reboot dentro al nostro file avremo la riga sudo reboot now.

Dobbiamo però dire al sistema operativo quale programma usare per interpretare i comandi quando lo script viene eseguito. Per farlo aggiungiamo all’inizio del nostro script una particolare riga, chiamata shebang.

#!/bin/bash
sudo reboot now

Ricordate, infine, che per essere eseguito, un comando deve avere i permessi di esecuzione.


Approfondimento : https://hackerstribe.com/2015/raspberry-pi-crontab-e-cronjob/

Posted on

Spostare un database mysql – mariadb da un server windows ad un altro server windows

Installare xampp sul nuovo server.

Se acceso, spegnere mysql.

Nella cartella C:\xampp\mysql\data creare una nuova cartella, per esempio con il nome del database che state spostando.

Copiare in essa tutti i file dati (.frm, .ibd, .myd, .myi) dalla relativa cartella del vecchio server.

Copiare dal vecchio server nella stessa posizione del nuovo server, cioè nella cartella C:\xampp\mysql\data i file ib_logfile0, ib_logfile1, ibdata1

ate partire mysql. Aprite un prompt di dos, andate nella catella

cd C:\xampp\mysql\bin

mysql -u root -p

show databases;

Dovreste vedere il nuovo database aggiunto ai precedenti.

Aprire un altro prompt di dos e fate un check delle tabelle con i comandi

cd C:\xampp\mysql\bin

mysqlcheck -uroot -p VOSTRODATABASE

Aprite il browser e collegatevi a phpmyadmin con http://localhost/phpmyadmin

Dovreste vedere il database e le tabelle.

Posted on

Apertura di un file csv in Excel. Come mantenere tutti gli zero iniziali nei campi

Quando aprite un file csv in Excel, se avete dei dati che contengono lo zero (0) all’inizio, questi saranno trasformati in numeri perdendo lo zero iniziale. Un caso tutto Italiano è quando avete un file csv che contiene i numeri di partita iva di una serie di aziende. Vediamo come fare per non perdere gli zero iniziali.

Non aprite il file csv con Excel. Aprite invece Excel con un nuovo foglio. Andate nella tab “Dati” e spingete “da testo/csv”.

Caricate ora il vostro file csv. Compare una nuova finestra che esegue una trasformazione dei dati.

In alto avete alcune scelte importanti.

Excel ha capito quale è il delimitatore del file csv. Nota : usate questa procedura anche quando state importando dei dati salvati in un file csv con un delimitatore differente dal vostro standard.

Excel cerca di capire il tipo di dati per ciascuna colonna “in base alle prime 200 righe”; vi consiglio di selezionare “in base all’intero set di dati”. In questo modo Excel dovrebbe capire che la colonna con gli zeri contiene del testo e non dei numeri. Spingete “Carica” per terminare la procedura o “Trasforma Dati” per forzare eventualmente altre scelte.

 

Posted on

Install Proliant Service Pack using ILO

Scenario

You have downloaded the prolian service pack in iso format and want to install it using ILO.
In ILO open “Remote Console & Media” and load the iso. Restart the server and start installing the service pack. At some point the installation crashes (at a certain percentage of completion).

Solution

The problem is that you used ILO’s HTML5 client to load the ISO; you have to use the Java client.

Hmtl5 remote console unmaps the image after a while