Verwenden Sie Azure AD für die Linux-Authentifizierung

Ich wollte Samba als Office 365-Benutzer authentifizieren, daher werde ich als vorläufige Vorbereitung Azure AD für die Linux-Authentifizierung verwenden.

Umgebung

Debian 10.2 Nodejs v10.19.0 (apt) aad-login Office365

Referenzierte Site

Linux-Login mit Azure AD authentifizieren! !!

Aufbau

Grundsätzlich handelt es sich um eine Prozedur der Referenzstelle, aber es gab etwas zu tun + α.

Erstellen Sie eine Anwendung mit Azure AD

Führen Sie "App-Registrierung" über die Azure-Konsole durch. Name: Leicht verständlicher Name Unterstützte Kontotypen: "Konten, die nur in diesem Organisationsverzeichnis enthalten sind"

Wenn Sie die App registrieren, wird die Anwendung (Client-ID) auf der Übersichtsseite angezeigt. Kopieren Sie sie daher.

Fix des Anwendungsmanifests

Wenn die Manifestseite angezeigt wird, wird das Manifest in JSON angezeigt. Legen Sie daher die folgenden Elemente fest. "allowPublicClient": true In meinem Fall wurde der Anfangswert auf null gesetzt.

Wenn Sie diese Einstellung vergessen und authentifiziert sind AADSTS7000218: The request body must contain the following parameter: Und die Authentifizierung schlägt fehl.

API-Berechtigungseinstellungen

Der Administrator musste den Berechtigungen durch Öffnen der API-Berechtigungsseite zustimmen. Klicken Sie auf die Schaltfläche "Administrator-Zustimmung zu [Name] erteilen", um die Zustimmung zu erteilen. Es ist in Ordnung, wenn Sie im Statuselement ein grünes Häkchen als "Gegeben an [Name]" setzen.

Wenn Sie diese Einstellung bei der Authentifizierung nicht vornehmen AADSTS65001: Der Benutzer oder Administrator hat nicht zugestimmt, die Anwendung mit der ID {Client-ID} mit dem Namen '[App-Name]' zu verwenden. Und die Authentifizierung schlägt fehl.

Installieren Sie aad-login

Dies ist die Arbeit auf der Linux-Serverseite.

bash


sudo apt update
sudo apt install -y nodejs npm git
cd /tmp
git clone https://github.com/bureado/aad-login
cd aad-login/
mkdir -p /opt/aad-login
cp aad-login.js package.json /opt/aad-login/
cp aad-login /usr/local/bin/
cd /opt/aad-login/
npm install

aad-login Einstellungen

aad-login.js


var directory = '[Office365 Domainname]';
var clientid = '[Anwendungs-ID]';

Wie Sie unter add-login.js sehen können, wird die Domäne, die für die Authentifizierung in office365 verwendet werden kann, im Verzeichnis beschrieben, da "Benutzername +" @ "+ Verzeichnis" als Benutzer-ID authentifiziert ist.

pam.d Einstellungen

Fügen Sie es am Anfang von common-auth hinzu, wie in git von aad-login beschrieben.

/etc/pam.d/common-auth


~ Ausgelassen ~
# pam-auth-update to manage selection of other modules.  See
# pam-auth-update(8) for details.

#↓ Hier hinzufügen ↓
auth sufficient pam_exec.so expose_authtok /usr/local/bin/aad-login
#↑ Hier hinzufügen ↑

# here are the per-package modules (the "Primary" block)
auth    [success=1 default=ignore]      pam_unix.so nullok_secure
# here's the fallback if no module succeeds
auth    requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
~ Ausgelassen ~

Benutzer hinzufügen

Ich musste den Benutzer, den ich authentifizieren wollte, im Voraus hinzufügen. Es wird vor @ hinzugefügt.

#hoge@Für Verzeichnis
useradd hoge

<< Bei Ausführung ohne Hinzufügen eines Benutzers >> Wenn pam_exec.so ausgeführt wird, wird "# 010 # 012 # 015 INCORRECT # 010 # 012 # 015" als Passwort festgelegt und es scheint, dass eine Authentifizierung nicht möglich ist.

Es scheint zu prüfen, ob ein Benutzer vorhanden ist, bevor die Authentifizierung durchgeführt wird. Wenn kein Benutzer vorhanden ist, wird das Kennwort durch das oben genannte ersetzt.

Ich habe das Gefühl, ich kann nichts für den persönlichen Gebrauch tun (゜ ゜)

Bisher habe ich festgestellt, dass sich Samba von der Benutzerverwaltung unterscheidet, und festgestellt, dass der ursprüngliche Zweck nicht erreicht werden konnte ...

Recommended Posts

Verwenden Sie Azure AD für die Linux-Authentifizierung
Verwendung der Fingerabdruckauthentifizierung für KDE
Warum Linux verwenden?
pyenv für Linux
Überprüfen Sie, wie Sie Azure Key Vault mit Azure SDK für Python verwenden! (Maßnahmen rund um die Zertifizierung)
[Für Memo] Linux Teil 2
Wofür ist Linux?
Ihr eigener Koredake ist ein Linux-Befehl
Linux Kernel Build für DE10nano
Verwenden Sie Github Desktop unter Linux
Empfohlene Linux-Distribution für Anfänger
Flatterplattformkanäle für Linux
Verwenden Sie WDC-433SU2M2 mit Manjaro Linux
Linux Command Dictionary (für mich)
Linux Command Memorandum [für Anfänger]
Verwenden Sie Linux unter Windows 10 (WSL2)
Praktische Linux-Verknüpfung (für Anfänger)