イントラネット用の SSO のセットアップに取り組んでいます。ユーザーがアクティブ ディレクトリのユーザー名とパスワードを使用してワークステーションにログインするという考えです。次に、ログイン時に小さなアプリケーションが実行され、一意に識別可能な情報、ユーザー名、およびコンピューターの MAC アドレスがサーバーに送信され、タイムスタンプ付きでデータベースに入力されます。次に、ユーザーがイントラネットにアクセスすると、Java アプレットがユーザーの MAC アドレスをサーバーに送信し、それをデータベース エントリと比較して、指定された時間内に一致するかどうかを確認します。一致する場合は、ユーザーをサインインさせて削除しますデータベースからのエントリ。
残念ながら、私たちのイントラネットは IIS で実行されていないため、NTLM を使用して認証を行うことはできません。これは簡単ですが、要件の 1 つであるクロス ブラウザーとの互換性はありません。私たちのイントラネットは intranet.company.com の形式でしかアクセスできないため、NTLM もオプションではありません。私が知る限り、NTLM はその形式のアドレスでは機能しません。
さて、質問に移りましょう。私は現在、C++ でクライアント認証アプリケーションを作成する過程にあり、正当にログインした Active Directory ユーザーと、アプリケーションを入手してローカル ユーザー名を変更したユーザーを区別する一意の識別子またはトークンを取得する方法が必要です。 ADユーザーに。
はい、これはおそらく間違った方法であることはわかっていますが、今のところそれが唯一の選択肢のようです。やらない以外に何かアドバイスがあれば教えてください。また、NTLM を使用せずにその穴を修正する方法を考えられる場合は、それが作成する巨大な隙間のあるセキュリティ ホールを認識しています。必ず私に知らせてください。