今日、SSSDで大きな問題が発生し、新しく作成されたユーザーがログオンできませんでした。トラブルシューティングを行った後、問題はADユーザーオブジェクトのセキュリティ権限にあることがわかりました。私のチームの誰かが最近、認証されたユーザーの権限を変更し、読み取りチェックボックスをオフにしたようです。
だから私の質問は、SSSDでドメインに参加したLinuxサーバーがADオブジェクト情報を認証および取得するためにどのユーザーを使用するかということです。認証されたユーザーの読み取り権限が取り消されたouのユーザーは非常に重要なので、SSSDによる認証にどのユーザーが使用されているかを知りたいと思います。パーミッションを必要とするのはLinuxサーバーのコンピューターオブジェクトでしょうか?
奇妙なことに、一時的に読み取りアクセス許可を有効にすると、ユーザーにIDを設定すると、すべて正常に機能します。次に、認証されたユーザーの読み取りアクセス許可のチェックを外します。すべてが機能し続けているようです。(もちろん、sssdキャッシュを空にした後)どのユーザーが最低限必要なアクセス許可についての洞察を歓迎します。
実際に認証するのはADコンピュータオブジェクトであることがわかりました。このオブジェクトにユーザーに読み取り権限を与えると、idコマンドでグループを取得できるようになります。問題は、idコマンドがすべてのグループを取得できるようにするために最低限必要なアクセス許可はどれかということです。
ldap_default_bind_dn
でldap_default_authtok
とsssd.conf
を指定しない限り、スキーマとオブジェクトを取得するために、指定されたLDAPサーバーへの匿名バインドがデフォルトになります。ログオンなど、それ以外のものはすべて、提供された資格情報を使用します。
多くの調査の結果、(質問ですでに述べたように)実際に認証を行っているのはLinuxサーバーのコンピューターオブジェクトであることがわかりました。ユーザーオブジェクトの読み取りアクセス許可をコンピューターオブジェクトに付与すると、id
が機能し、すべてのユーザーグループを取得できるようになります。
しかし、すべてのユーザーに読み取りを許可したくなかったため、試行錯誤の末、必須の必須権限は実際には1つだけであり、それはRead remote access information
であることがわかりました。 Read remote access information
チェックボックスがチェックされた瞬間から(スクリーンショットを参照)、ìd
コマンドを使用してすべてのグループを取得することができます。 SSSDは、ユーザーが/etc/sssd/sssd.confのsimple_allow_groups
ディレクティブで設定されたグループに属しているかどうかを確認できます。