Active Directory + IIS で、社内(イントラネット)Webサイトをシングルサインオンにできる。
統合Windows認証を使える条件
よくあるご質問:統合Windows認証の設定方法を教えてください。│グループウェア desknet's NEO
※ある製品のサポートページだが、統合Windows認証が使える条件が詳しく書かれている。
サーバー側
- Windows Server および IISを使用する。
- Active Directoryドメインに参加している。
クライアント側
- PCがActive Directoryドメインに参加していて、ログオンユーザーもドメインユーザーである。
- インターネットオプションで、サーバーをイントラネットもしくは信頼済みサイトと認識している。
イントラネットサイトの判別
統合Windows認証が通るかどうかは、接続先がイントラネット内にあるかどうかで決まり、その判断はクライアントのブラウザによって行われる。
IE のセキュリティ ゾーンについて – Japan IE Support Team Blog
端的にいうと、Webサイトのページのプロパティを見て「ゾーン」が「ローカルイントラネット」になっていれば良い。
ローカルサイトかどうかは、設定は色々あるが、まずURLで判定されている。URLにドットが含まれていない場合は、ローカルサイトとみなされる。
つまり、以下のような感じ:
-
http://server/
→ ローカルサイト -
http://192.168.1.1/
→ インターネットサイト -
http://server.co.jp/
→ インターネットサイト
その他、プロキシ除外に指定したサイトはローカルイントラサイトとみなしたりする。
参考:
IE 限定じゃない統合Windows認証-Chrome / Edge / Firefox でも! | 鉄飛テクノロジー
統合Windows認証を使う
ASP.NET で Windows 認証および Windows 承認を実装する方法
IIS の設定補足
上記サイトを見れば大体は分かるが、IIS設定部分が分かりづらかったので画像を載せた。
IISマネージャーを開き、対象のWebサイト → 認証 を押す。
「Windows認証」のみ有効にする。
これを調べたきっかけ
社内のあるWebシステムで統合Windows認証を利用していたが、プロキシサーバーの利用をやめた途端、認証を求めるダイアログが表示されるようになった。
私の入社前から稼働していたシステム&外部ベンダー製ということもあり、何も知らないので少し調べてみた記録がこの記事。
プロキシサーバー利用時に何故統合Windows認証が有効だったかというと、「インターネットオプションのセキュリティ設定で、プロキシサーバーを使用しないサイトをイントラネットに含める設定になっていて、かつ、プロキシ例外に192.168.*
が入っていたから、イントラネットと判定された」ことが理由っぽい。
件の社内システムのURLはIPアドレスだったので、これを試しにサーバー名(ドット無し)に変えてみたところ、イントラネットサイトと認識され、認証がすんなり通った。
対応方法としては、インターネットオプションを変更し、IPアドレスをイントラネットサイトに含めるのも良いと思う。