MENU

IISの統合Windows認証を使ったSSO(Single Sign On)

目次

統合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のフローは次の通りです。

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

SSOを実現するための必要要件

IISのインストール

サーバの役割からIISをインストールしてください。

IISインストール時にオプションで「Windows 認証」のチェックを行う。

IISの役割インストールが完了してから、ISAPI フィルター・ISAPI 拡張を別途インストールする

ISAPI フィルター: IIS における拡張モジュールのロードをサポートします。AspNetCoreModuleV2 をロードするために必要です。
ISAPI 拡張: IIS に ISAPI 拡張機能を追加します。 AspNetCoreModuleV2 の動作に必須です。 IISマネージャー起動(iisreset)

ASP.NET Core Hosting Bundle をインストール

ASP.NET Core Hosting Bundle をインストールしてください。

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

IIS 環境で ASP.NET Core アプリケーションをホストする場合、 ASP.NET Core Hosting Bundle をインストールするだけで以下が自動的にインストールされる .NET Runtime ASP.NET Core Runtime

アプリケーションの追加(cam-iissso)

SSOモジュールをダウンロードし、C:\inetpub\wwwroot\cam-iissso へコピー https://chat-messenger.com/dl/fdd94dd-022_f2aaac/cam-iissso.zip Default Web Site に cam-iissso アプリケーションを追加 エイリアス cam-iissso 物理パス C:\inetpub\wwwroot\cam-iissso

Windows認証を有効にする

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

「匿名認証」が有効になっている場合は、これを「無効」にしてください。

インターネット オプションの設定

IISで提供するサイトをイントラネットゾーンに追加

インターネット オプションを選択し、「セキュリティ」タブをクリックし、「ローカル イントラネット」を選択 「サイト」ボタンをクリックし、「詳細設定」を選択しサイトのURLを追加

自動ログオンを確認

「レベルのカスタマイズ」をクリックし、「ユーザー認証」→「ログオン」で 「イントラネット ゾーンでは自動的にログオンする」が選択されていることを確認

C&Mユーザのクライアント端末全員でこの設定が必要ですが、グループポリシー管理コンソールで一元管理ができます。

LDAP設定

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

HTTPプロキシ接続環境下では利用できない

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

  • URLをコピーしました!
目次