ringkasan
Active Directory 環境では、統合 Windows 認証(Kerberos) を利用することで、ユーザーが Windows にログインしている認証情報をそのまま利用し、C&M に追加ログインすることなく CAMServer へ自動ログイン(SSO) できます。
従来、この仕組みは IIS / ASP.NET を利用して構築する必要がありましたが、本機能では CAMServer が直接 Kerberos 認証を処理します。これにより、IIS などの追加サーバを用意することなく、よりシンプルな構成で統合 Windows 認証による SSO を実現できます。

SSOフロー

SSO処理の流れ
- CAMServerへアクセス
ユーザーがブラウザでCAMServerへアクセス。ユアクセス時に、アプリケーションの一時トークンをPOSTで送信 - 認証要求
CAMServerは一時トークン検証後、ブラウザに対してWindows認証(Negotiate)を要求 - Kerberosチケット取得
ブラウザはWindowsログオン情報を利用して、
Active DirectoryのKDCからKerberosサービスチケットを取得 - Kerberosチケット送信
ブラウザは取得したKerberosチケットを
HTTPヘッダーに付与してCAMServerへ再送 - チケット検証
CAMServerはkeytabを利用してKerberosチケットを検証。検証が成功すると、チケットに含まれるKerberos principal を取得 - LDAP検索とCAMユーザー照合
取得した Kerberos principal からLADP検索を行いADのユーザ情報を取得し、CAMServerに登録されているユーザーと照合。一致した場合ログインを許可する - ログイン完了
CAMServerはログインセッションを発行し、
ユーザーはログイン画面を表示せずにCAMServerを利用できます。
Windows認証を行うFQDN以外でアクセスした場合や、ドメインに参加していないPCからのアクセスの場合は、C&M上のログイン認証が行われます。
動作要件
本機能を利用するためには、以下の環境が必要です。
Active Directory 環境
- Active Directory ドメインが構築されていること
CAMServer サーバ
- Ultimate プランを利用していること
- CAMServer に FQDN でアクセスできること
- CAMServer を動作させる Windows Server が、Active Directory ドメインに参加していること
既存のWindows Server が参加しているドメインを確認するには、「サーバーマネージャー」→ 左メニュー「ローカルサーバー」クリック→「コンピューター名」をクリックしドメイン欄を参照
利用ユーザー
- 利用者PCがドメイン参加し、Windowsへドメインログオンしていること
- SSO対象ユーザーは、ユーザーIDが Nama Prinsipal Pengguna (UPN 形式)で CAMServer に事前登録されていること (例 user@camtest.com)
対応ブラウザ
以下のブラウザでWindows認証SSOが利用可能です。
- Microsoft Edge
- Google Chrome
- camapp
ロードバランサー構成について
Windows認証(Kerberos)は、HTTP認証ヘッダによるネゴシエーションを行う認証方式のため、CAMServer を443ポートで起動したまま、ロードバランサーはL4(TLSパススルー)が必要です。
推奨構成
ユーザ ──HTTPS──▶ L4ロードバランサー(TLSパススルー) ──HTTPS──▶ CAMServer(443)
NG構成
ユーザ──HTTPS──▶ L7ロードバランサー(SSL終端) ──HTTP──▶ CAMServer(8080)
構築手順
以下構築手順では、「構成例」を元に説明いたします。
構成例
- Windows認証を行うFQDN:
https://test.chat-messenger.com - Active Directory ドメイン名:
camtest.com - サービスアカウント:
cam-svc@camtest.com(CAMTEST\cam-svc)
SPN登録概要
SPN (Service Principal Name) adalah nama yang secara unik mengidentifikasi layanan tertentu pada Direktori Aktif dalam autentikasi Kerberos. Jika Anda mengakses layanan menggunakan FQDN, mendaftarkan SPN akan memungkinkan klien untuk berhasil meminta tiket Kerberos untuk layanan yang Anda akses.
Misalnya https://test.chat-messenger.com にアクセスする際、クライアント(ブラウザ)は Active Directory に「HTTP/test.chat-messenger.com というサービスに接続したい」とチケットを要求します。Active Directory は、その SPN がどのアカウントに紐付いているかを確認し、該当するサービスチケットを発行します。SPN が正しく登録されていないと、Kerberos 認証に失敗します。
サービスアカウント
Kerberos認証用のサービスアカウントを作成します。ドメインユーザーであれば可能ですが、通常ユーザーとサービスアカウントを分離し、誤操作やパスワードポリシーの適用範囲を明確にするため、OU=ServiceAccounts のように、OUを Users と区別してActive Directory ドメインコントローラーで、cam-svc を作成します。
アカウントオプションで以下をチェックしてください。
- パスワードを無期限にする
- このアカウントで Kerberos AES 256 ビット暗号化をサポートする


サービスアカウントでSPN登録
setspn -S HTTP/test.chat-messenger.com CAMTEST\cam-svc上記で作成したサービスアカウントでSPN登録を行います。
・ドメインに参加している任意の端末でOK。ただし、ドメイン管理者権限が必要です。
・HTTPS通信においてもSPNはHTTP/ホスト名の形式で登録する必要があります。
以下のコマンドでSPNが登録されていることを確認します。
setspn -L CAMTEST\cam-svckeytab作成
CAMServerがKerberosチケットを検証できるように、サービスアカウントのkeytabファイルを作成します。Active Directory管理サーバで以下のコマンドを実行します。
ktpass /out CAMServer\config\windowsAuth\cam.keytab /princ HTTP/test.chat-messenger.com@CAMTEST.COM /mapuser CAMTEST\cam-svc /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1 /pass "*******"CAMServer 設定
Windows認証を利用するために、CAMServerの設定ファイル(boot.ini)へ以下を追加します。各値は環境毎に置き換えてください。
# Kerberos レルム(通常は Active Directory ドメイン名を大文字で指定)
# 例: camtest.com ドメイン → CAMTEST.COM
cam.windowsAuth.realm=CAMTEST.COM
# Windows認証を行うFQDN
cam.windowsAuth.FQDN=test.chat-messenger.com
# Kerberos KDC
# 通常は Active Directory のドメインコントローラのFQDN。ポートTCP/UDP 88 は Kerberos 標準ポートでリッスンされている
cam.windowsAuth.kdc=ad.camtest.com:88
Mengatur opsi Internet
CAMServer のFQDNをイントラネットゾーンに追加
インターネット オプションを選択し、「セキュリティ」タブをクリックし、「ローカル イントラネット」を選択 「サイト」ボタンをクリックし、「詳細設定」を選択しサイトのURL(https://test.chat-messenger.com)を追加
Periksa masuk otomatis
Klik "Tingkat Khusus" dan di bawah "Otentikasi Pengguna" → "Logon", pastikan "Log on secara otomatis di zona intranet" dipilih.


