10

Active Directory の Windows PC からユーザー名パスワードを入力しなくても、システムに安全にログオンできるようにしたいと考えています。アイデアは、私(ログオンしたWindowsマシンで実行されているクライアントソフトウェア)が、私が誰であるかをサーバーに証明する何らかのトークンを持っているということです(サーバーはADと通信して、トークンと私の身元を確認します身元)。これは .net 3 で可能ですか?

C# で使用されている言語。

4

4 に答える 4

10

クレームベースの認証を実際に検討する必要があると思います。

マイクロソフトは最近多くのことを行いました。Geneva Server (現在は正式に ADFS 2.0 と呼ばれています) と Geneva Framework (現在は正式に Windows Identity Foundation と呼ばれています) について聞いたことがあるでしょう。認証は中央のポイント/サーバー (Geneva サーバーまたは Security Token Server (STS) 一般に) で行われ、認証されたユーザーにはセキュリティ トークン (SAML 2.0 ベース) が与えられ、それをリソースに提示します。アクセスしたい。認証は、ユーザー名/パスワード、スマート カード、証明書などのさまざまな方法で行うことができます。また、あなたの場合は、Windows 認証 (Windows 統合認証と呼ばれる) のような既存のトークンを変換することによって行うこともできます。

トークンは SAML 2.0 ベースです (他のベンダーの STS 製品との良好な相互運用性にとって重要な業界標準)。アプリケーションまたはリソース (Web サービスも含む) で承認 (権限の付与) を行うために使用される人物に関するクレームが含まれています。そのためには、アプリケーションが STS によって与えられたクレームを信頼することがもちろん不可欠です。一方、アプリケーションは認証をまったく行う必要はありません。

Geneva Framework は、アプリケーションでトークンを処理するために使用されるライブラリ (.NET) です。使い方はかなり簡単です。

詳細については、このトピックを紹介するホワイト ペーパーを参照してください。公式サイトはこちら。

もちろん、これらの概念で対処される問題は他にもたくさんありますが、これは私見の興味深い部分です。これには、シングル サインオン (SSO)、フェデレーション シングル サインオン (複数の組織境界にまたがる)、委任 (アプリケーションがユーザー権限で Web サービスを使用する) が含まれます。この情報がお役に立てば幸いです。

乾杯

PS: もちろん、これは Microsoft の問題ではありません。同様の機能を提供する Sun OpenSSO、Ping Identity、および Thinktecture Identity Server などの他の STS 製品があります。質問で言及されているADおよびWindows認証との優れた相互運用性があるため、Microsoftのものを強調しました。

于 2009-10-06T09:47:28.747 に答える
3

私が質問を正しく理解していれば、Kerberos がまさにこの例で探しているものであるかのように見えます。Kerberos 認証 (ターゲット環境でサポートされている場合) は、この方法のチケット認証を許可します。Brokered Authentication with Kerberosの仕組みの概要については、MSDN リファレンス on Brokered Authentication with Kerberosをお勧めします。

Kerberos による仲介認証 http://i.msdn.microsoft.com/Aa480562.ch1_brokauthkerb_f02(ja-jp,MSDN.10).gif

これをサポートする C# コードについては、MS Web サービスに焦点を当てたこのCodeProject 記事をお勧めしますが、他のシナリオで使用するための基礎を提供する可能性があります。

于 2009-10-01T08:05:51.390 に答える
0

Windowsマシンでは、各アプリケーションスレッドは何らかのセキュリティトークンの下で実行されます。デフォルトでは、これは現在のユーザーのトークンです。したがって、マシンまたはネットワークでファイルを読み取りたい場合は、アプリケーションがトークンとともにそこに移動します。他のユーザーまたはサービス、または他の誰かとして機能するようにコードを偽装することができます。asp.netアプリとして使用している場合、Internet Explorerはバックグラウンドでiis(イントラネットエリア内)とデータを交換し、サーバーがユーザーを認識できるようにしますが、デフォルトでは資格情報の下で実行されません。 web.configを介して変更

于 2009-10-01T04:52:45.133 に答える
0

ネットワーク リソース (ファイル共有、SQL Server など) にアクセスすると、アプリケーションは現在それを実行しているユーザーとしてそれらを自動的に実行します。もっと具体的なことをしたいですか?ドメインで運用している場合、アクセス許可は、使用するすべてのネットワーク リソースに自然に従う必要があります。

.NET を使用して他のユーザーになりすましてタスクを実行できますが、追加の手順を実行しなくても、ユーザーに再度ログインさせることなくユーザーの代わりに行動できます。

于 2009-10-01T04:18:36.077 に答える