none
ログイン自体の制御 RRS feed

  • 質問

  • お世話になります。

    Windows Server 2016以降、Windows10共通で、下記のようなことができるか知りたいです。

    ①ある信号が来ないと(TCP/IP経由)ログインできないようする、といったサービスは作成可能でしょうか。

    ②ある信号が来ないと(TCP/IP経由)ADMIN権限ではなくUSER権限でしかログインできないようする、といったサービスは作成可能でしょうか。


    可能な場合、参考になるサイト等ありますでしょうか。

    宜しくお願い申し上げます。

    2021年4月14日 8:23

回答

  • チャブーンです。

    この件ですが、Hebikuzureさんから出ているのは、OSの機能の一部改変(開発)を前提としていると思います。

    質問者さんが、質問事項を「OS設定で簡単に変えられる」と思っておられるとしたら、これはムリな話しとなります。

    Windows OSのログオンには「セッション管理」という考え方がありません。ローカル内で認証プロセスに成功すれば、それでログオンは完了となり、外部要素がフックや別認証するというしくみ自体がありません。これは過去の経緯上、想定していなかったことなので、仕方のない仕様となります(winlogon.exe周りを開発するという手法はありますが、これも開発です)。

    過去、フリーツールで「LimitLogin」という、Active Directoryでの同時ログオンを制御するソフトがあったのですが、コレのしくみは、ログオン試行→対象データベースを確認・新規ならログオンON記録→すでにログオンON記録済みなら強制ログオフ、というもので、ログオン自体を制御するしくみではありませんでした。要するに、標準機能ではできない、ということです。

    したがって、ご質問の要望自体、今までの仕様から考えると悪手=無理に考えるべきではない、ということはいえるかと思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2021年4月15日 7:15

すべての返信

  • 資格情報プロバイダーをカスタム開発すればできるかもね、とは思いますが、「ある信号」というのはどんなものを想定されているのでしょう?


    Hebikuzure aka Murachi Akira

    2021年4月14日 9:38
  • ご返信ありがとうございます。

    資格情報プロバイダー、調べてみます。ありがとうございます。

    「ある信号」ですが、実際には、自分がTCPクライアントとなり、TCPサーバ(別のPC)へ接続し、許可情報を要求し、許可を受信したら、となります。

    TCPサーバ側は、独自の個人識別を行い、その人がそのPCにログインしてよいとなったら、許可を送信します。

    宜しくお願い申し上げます。

    2021年4月15日 6:19
  • チャブーンです。

    この件ですが、Hebikuzureさんから出ているのは、OSの機能の一部改変(開発)を前提としていると思います。

    質問者さんが、質問事項を「OS設定で簡単に変えられる」と思っておられるとしたら、これはムリな話しとなります。

    Windows OSのログオンには「セッション管理」という考え方がありません。ローカル内で認証プロセスに成功すれば、それでログオンは完了となり、外部要素がフックや別認証するというしくみ自体がありません。これは過去の経緯上、想定していなかったことなので、仕方のない仕様となります(winlogon.exe周りを開発するという手法はありますが、これも開発です)。

    過去、フリーツールで「LimitLogin」という、Active Directoryでの同時ログオンを制御するソフトがあったのですが、コレのしくみは、ログオン試行→対象データベースを確認・新規ならログオンON記録→すでにログオンON記録済みなら強制ログオフ、というもので、ログオン自体を制御するしくみではありませんでした。要するに、標準機能ではできない、ということです。

    したがって、ご質問の要望自体、今までの仕様から考えると悪手=無理に考えるべきではない、ということはいえるかと思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2021年4月15日 7:15
  • チャブーン様

    ありがとうございます。

    OSの開発を行う(マイクロソフト以外無理)か、許可状態でなければ強制ログオフを行うことで目的を達成できる、と理解しました。

    Windows10で、強制ログオフであれば、C#でもWMIを使ってできそうです。

    WindowsServerをまだ触ったことが無いのですが、WMIでできるものでしょうか。

    宜しくお願い申し上げます。

    2021年4月15日 8:52
  • 資格情報プロバイダーの開発は Windows 開発の中でも難易度の高い部類です。また書かれているような仕組みであればネットワーク接続の状態のチェックなども実装しなければならない(ログオン可能になった時点で必要なネットワークスタックがすべて読みこまれて準備可能になっていてネットワーク接続が完了している保証はない)ので、かなり大変だと思います。

    書かれている内容は一種のデバイスへの条件付きアクセスということになりますが、そういうことであればもっと別のソリューションを探した方が良いように思います。


    Hebikuzure aka Murachi Akira

    2021年4月15日 10:27
  • Hebikuzure様

    ありがとうございます。

    資格情報プロバイダーの開発はユーザー側(マイクロソフト以外)で可能ではあるが、難易度がかなり高いと理解しました。

    サービスでログインを検知して、許可されていなかったら(通信できないも含む)強制ログオフする方向で進めたいと思います。

    ありがとうございました。

    2021年4月16日 2:29
  • フォーラムにご投稿くださいましてありがとうございます。

    同じ問題を持っている人々に役に立つために参考になった投稿には「回答としてマーク」をご設定ください

    今後ご不明な点がございましたら、お気軽にお問い合わせください

    Fan


    Please remember to mark the replies as an answers if they help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com

    2021年4月21日 5:15
    モデレータ
  • チャブーンです。

    この件ですが、申し訳ないのですが、方法の検討については、質問者さんで最初に検討いただいた方がいいと思います。

    率直に申し上げるのですが、プログラマルな話しの情報交換を行う場合、互いにプログラマーとしての最低スキルは必要かと思います。このスキルは「ご自分で情報を調べる」というような、自助スキルも含みます。Windows開発の資料はマイクロソフトに多数公開されていますので、まずは納得のいく資料を、ご自身で確認されるとよいと思います。

    ちなみにLinitLoginの仕様は「いったんログオンしたWindowsをログオフする」であり、ログオンをキャンセル(=なかったことにする)ことはできません。開発についても単なる強制ログオフなら、同じ動作になることがいえそうです。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2021年4月21日 14:24