Je voulais authentifier Samba en tant qu'utilisateur Office 365, donc comme préparation préliminaire, j'utiliserai Azure AD pour l'authentification Linux.
Debian 10.2 Nodejs v10.19.0 (apt) aad-login Office365
Authentifiez la connexion Linux avec Azure AD! !!
En gros, c'est une procédure du site de référence, mais il y avait quelque chose à faire + α.
Effectuez «Inscription d'application» à partir de la console Azure. Nom: nom facile à comprendre Types de comptes pris en charge: "Comptes contenus uniquement dans cet annuaire d'organisation"
Lorsque vous enregistrez l'application, l'application (ID client) sera affichée sur la page de présentation, donc copiez-la.
Lorsque la page du manifeste est affichée, le manifeste est affiché dans JSON, définissez donc les éléments suivants.
"allowPublicClient": true
Dans mon cas, la valeur initiale a été définie sur null.
Si vous oubliez ce paramètre et que vous êtes authentifié
AADSTS7000218: The request body must contain the following parameter:
Et l'authentification échoue.
L'administrateur devait ouvrir la page des autorisations de l'API et accepter les autorisations. Cliquez sur le bouton "Donner le consentement de l'administrateur à [nom]" pour donner votre consentement. Ce n'est pas grave si vous mettez une coche verte dans l'élément d'état comme "Donné à [nom]".
Si vous ne définissez pas ce paramètre, lorsque vous vous authentifiez ʻAADSTS65001: L'utilisateur ou l'administrateur n'a pas consenti à utiliser l'application avec l'ID {ID client} nommé '[nom de l'application]'. ` Et l'authentification échoue.
C'est le travail du côté serveur Linux.
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.js
var directory = '[nom de domaine office365]';
var clientid = '[ID d'application]';
Comme vous pouvez le voir en regardant add-login.js, ʻusername + '@' + directory` est authentifié comme userid, donc le domaine qui peut être utilisé pour l'authentification dans office365 est décrit dans le répertoire.
Ajoutez-le au début de common-auth comme décrit dans git de aad-login.
/etc/pam.d/common-auth
~ Omis ~
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
#↓ Ajouter ici ↓
auth sufficient pam_exec.so expose_authtok /usr/local/bin/aad-login
#↑ Ajouter ici ↑
# 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;
~ Omis ~
J'ai dû ajouter l'utilisateur que je voulais authentifier à l'avance. Il sera ajouté avant @.
#hoge@Pour l'annuaire
useradd hoge
<< Lorsqu'elle est exécutée sans ajouter d'utilisateur >> Lorsque pam_exec.so est exécuté, "# 010 # 012 # 015 INCORRECT # 010 # 012 # 015" est défini comme mot de passe et il semble que l'authentification n'est pas possible.
Il semble vérifier s'il y a un utilisateur avant de faire l'authentification, et s'il n'y a pas d'utilisateur, le mot de passe sera remplacé par celui ci-dessus.
J'ai l'impression que je ne peux pas m'en empêcher pour un usage personnel (゜ ゜)
Jusqu'à présent, j'ai réalisé que Samba était différent de la gestion des utilisateurs, et j'ai réalisé que l'objectif initial ne pouvait pas être atteint ...
Recommended Posts