統合Windows認証の概要
統合Windows認証(Integrated Windows Authentication, IWA)は、 IISとユーザーが同じドメインにログインしている場合に、自動的にユーザの認証情報をIISに提供する仕組みです。 ASP.NET のC#でサイトを作成すると、ユーザ認証済み判定、及び認証済みユーザの情報が取得できます。
これにより、ユーザーは追加のログイン操作をせずに、IISがホストする(または連携する)ウェブアプリケーションにアクセスでき、他のアプリケーションサーバとSSO連携が実現できます。
※同じドメインに参加していない場合や、認証されていないユーザがIISのページへアクセスするとサインインダイヤルが表示され、 正しく認証しない場合は、HTTP Error 401.1 – Unauthorized となる。

SSO(Single Sign On)フロー
Chat&Messenger オンプレミスの Ultimate プランでは統合Windows認証によりSSOが可能です。SSOのフローは次の通りです。
- クライアントは、最初に統合Windows認証されたページ /cam-iissso にアクセスする
- /cam-iissso ページでは、 ASP.NET により認証済み判定を行い、CAMServer へ連携する
- CAMServer はLDAP検索を行い正規ADユーザである事を確認し、ssoToken(一意なランダム値30バイト以上)、と共にCAMServer へアクセスするURLを生成し、リダイレクト要求を行う
- CAMServer にアクセスし、ssoToken を用いて認証する。認証成功したら、APIアクセス用のセッションIDが割り当てられる

SSOを実現するための必要要件
IISのインストール
サーバの役割からIISをインストールしてください。
IISインストール時にオプションで「Windows 認証」のチェックを行う。
IISの役割インストールが完了してから、ISAPI フィルター・ISAPI 拡張を別途インストールする


ASP.NET Core Hosting Bundle をインストール
ASP.NET Core Hosting Bundle をインストールしてください。
インストール後、IISを再起動してハンドラーマッピング に AspNetCoreModuleV2 が存在していることを確認してください。



アプリケーションの追加(cam-iissso)
Default Web Site に cam-iissso アプリケーションを追加してください。
- エイリアス: cam-iissso
- 物理パス: <CAMServer>\sys\cam-iissso-net8.0
また、cam-iissso-net8.0 フォルダに対し IIS_IUSRS グループで閲覧アクセス権(読み取りと実行、フォルダの内容の一覧表示、読み取り)を付与してください。


Windows認証を有効にする
「Windows認証」を右クリックし、「有効」にします。

インターネット オプションの設定
IISで提供するサイトをイントラネットゾーンに追加
インターネット オプションを選択し、「セキュリティ」タブをクリックし、「ローカル イントラネット」を選択 「サイト」ボタンをクリックし、「詳細設定」を選択しサイトのURLを追加
自動ログオンを確認
「レベルのカスタマイズ」をクリックし、「ユーザー認証」→「ログオン」で 「イントラネット ゾーンでは自動的にログオンする」が選択されていることを確認


LDAP設定
IISを使ったシングルサインオン行う場合は、LDAP設定(LDAPUrl,LDAPBaseDN,代理認証を行うADユーザ)が必要です。

HTTPプロキシ接続環境下では利用できない
SSOはHTTPプロキシ接続環境下では利用できないので注意してください。