会社の ASP.net Web アプリケーションを開発しています。このサイトを内部ネットワーク (イントラネット) で使用するユーザーもいれば、インターネット サイトを使用するユーザーもいます。Windows 認証モードを使用しています。
イントラネット ユーザーに Windows 認証モードを要求せず、インターネット ユーザーに Windows 認証モードを要求する方法を見つける必要があります。
これどうやってするの?
会社の ASP.net Web アプリケーションを開発しています。このサイトを内部ネットワーク (イントラネット) で使用するユーザーもいれば、インターネット サイトを使用するユーザーもいます。Windows 認証モードを使用しています。
イントラネット ユーザーに Windows 認証モードを要求せず、インターネット ユーザーに Windows 認証モードを要求する方法を見つける必要があります。
これどうやってするの?
あなたの説明に基づいて、IIS の Windows 認証はそのトリックを行います。
最初のいくつかのリンク:
ただし、次の点に注意してください。
シングル サインオン (SSO) (つまり、ユーザー名とパスワードを提供せずにアプリケーションにアクセスすること) は、次のすべてが当てはまる場合に発生します。
その他の状況では、ユーザーは Active Directory ドメイン内のアカウントの資格情報 (ユーザー名とパスワード) を求められます。したがって、インターネットから Web サーバーにアクセスするユーザーは、ユーザー名とパスワードの入力を求めるポップアップが表示されます。
シングル サインオンを使用しないユーザー (ユーザー名とパスワードの入力を求められるユーザー) の場合、HTTP 認証モードは BASIC である可能性が高いことに注意してください。つまり、その接続を傍受できる人は誰でも、交換されているユーザー名とパスワードを見ることができます。この手法を使用する場合は、クライアントとサーバー間の接続が暗号化されていることを確認してください (HTTPS または VPN)。
Web サーバーがドメインで実行されていること、およびすべてのイントラネット ユーザーが Web サーバー上の Web サイトを含むフォルダーへの読み取りアクセス権を持っていることを確認してください。
次に、web.config に含まれていることを確認します (どのドメイン ユーザーがサイトにアクセスしているかを検出すると仮定します。
最後に、IIS マネージャーを開き、Web サイトを右クリックして [プロパティ] を選択します。そこから「Directory Security」タブをクリックし、Authentication and Access Control の「Edit」をクリックします。「匿名アクセス」のチェックを外し、「統合 Windows 認証」がチェックされていることを確認します。これにより、Web サイトが期待どおりに動作するはずです (イントラネット クライアントが IE を使用していると仮定します)。
私が知る限り、Windows 認証はイントラネットにのみ使用できますが、フォーム認証を含めてインターネット ユーザーを認証することもできます。このページには、いくつかの情報と、これを行う方法に関するチュートリアルへのリンクがあります。
アプリケーションを 2 つの異なるサーバーにデプロイする可能性があります。Windows認証ユーザーがアクセスおよび利用できるファイアウォール内のサーバーでのWindows認証。公の面では、フォーム認証を使用するように Web 構成を設定し、バックエンドへの接続を保護することを心配します。
ただし、これに単一のサーバーを使用する場合は、次の MSDN 記事を参照してください: ASP.NET でのフォームと Windows セキュリティの混合