เมนู

統合Windows認証でのSSO

สารบัญ

ภาพรวม

Active Directory 環境では、統合 Windows 認証(Kerberos) を利用することで、ユーザーが Windows にログインしている認証情報をそのまま利用し、C&M に追加ログインすることなく CAMServer へ自動ログイン(SSO) できます。

従来、この仕組みは IIS / ASP.NET を利用して構築する必要がありましたが、本機能では CAMServer が直接 Kerberos 認証を処理します。これにより、IIS などの追加サーバを用意することなく、よりシンプルな構成で統合 Windows 認証による SSO を実現できます。

SSOフロー

SSO処理の流れ

  1. CAMServerへアクセス
    ユーザーがブラウザでCAMServerへアクセス。ユアクセス時に、アプリケーションの一時トークンをPOSTで送信
  2. 認証要求
    CAMServerは一時トークン検証後、ブラウザに対してWindows認証(Negotiate)を要求
  3. Kerberosチケット取得
    ブラウザはWindowsログオン情報を利用して、
    Active DirectoryのKDCからKerberosサービスチケットを取得
  4. Kerberosチケット送信
    ブラウザは取得したKerberosチケットを
    HTTPヘッダーに付与してCAMServerへ再送
  5. チケット検証
    CAMServerはkeytabを利用してKerberosチケットを検証。検証が成功すると、チケットに含まれるKerberos principal を取得
  6. LDAP検索とCAMユーザー照合
    取得した Kerberos principal からLADP検索を行いADのユーザ情報を取得し、CAMServerに登録されているユーザーと照合。一致した場合ログインを許可する
  7. ログイン完了
    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が UserPrincipalName (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)

L7ロードバランサーでは、TLS終端やHTTP再生成が行われるため、
Windows認証(Kerberos)のネゴシエーションに対応していない事が多いようです。

構築手順

以下構築手順では、「構成例」を元に説明いたします。

構成例

  • Windows認証を行うFQDN:https://test.chat-messenger.com
  • Active Directory ドメイン名:camtest.com
  • サービスアカウント:cam-svc@camtest.com (CAMTEST_cam-svc ทดสอบ)

SPN登録概要

SPN (ชื่อหลักของบริการ) เป็นชื่อที่ระบุบริการเฉพาะบน Active Directory ในการรับรองความถูกต้อง Kerberos อย่างไม่ซ้ำกัน หากคุณเข้าถึงบริการโดยใช้ FQDN การลงทะเบียน SPN จะทำให้ไคลเอนต์สามารถขอตั๋ว Kerberos สำหรับบริการที่คุณกำลังเข้าถึงได้สำเร็จ

ตัวอย่างเช่น https://test.chat-messenger.com にアクセスする際、クライアント(ブラウザ)は Active Directory に「HTTP/test.chat-messenger.com というサービスに接続したい」とチケットを要求します。Active Directory は、その SPN がどのアカウントに紐付いているかを確認し、該当するサービスチケットを発行します。SPN が正しく登録されていないと、Kerberos 認証に失敗します。

บัญชีบริการ

Kerberos認証用のサービスアカウントを作成します。ドメインユーザーであれば可能ですが、通常ユーザーとサービスアカウントを分離し、誤操作やパスワードポリシーの適用範囲を明確にするため、OU=บัญชีบริการ ชอบโอยู ผู้ใช้งาน แตกต่างจากตัวควบคุมโดเมน Active Directoryแคม-svc สร้างใหม่

CAMServer を Windows サービスとして起動する際に、サービスアカウントを指定している場合は、同じユーザを使えば良いです。

アカウントオプションで以下をチェックしてください。

  • パスワードを無期限にする
  • このアカウントで Kerberos AES 256 ビット暗号化をサポートする

後述の ktpass で AES256-SHA1 を指定するため、AES 256 ビット暗号化のサポートを有効にしておく必要があります。指定しない場合は RC4 で、セキュリティ脆弱性のため今後非推奨になる予定です。

ลงทะเบียน SPN ด้วยบัญชีบริการ

setspn -S HTTP/test.chat-messenger.com CAMTEST\cam-svc

ลงทะเบียน SPN โดยใช้บัญชีบริการที่สร้างไว้ด้านบน

- สามารถใช้เทอร์มินัลใดๆ ที่เป็นส่วนหนึ่งของโดเมนได้ อย่างไรก็ตาม จำเป็นต้องมีสิทธิ์ของผู้ดูแลระบบโดเมน
・SPN ยังใช้ในการสื่อสาร HTTPS ด้วยHTTP/ชื่อโฮสต์คุณจะต้องลงทะเบียนในรูปแบบ:

以下のコマンドでSPNが登録されていることを確認します。

setspn -L CAMTEST\cam-svc

keytab作成

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 "*******"

・/out: windowsAuth フォルダを作成し CAMServer\config\windowsAuth\cam.keytab へ出力
・/princ:HTTP/<FQDN>@<ドメイン名大文字> の形式で設定
・/pass: で指定するパスワードは、サービスアカウントのものを指定
・サービスアカウントのパスワードを変更した場合は、keytabファイルを再生成する必要があります。

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

การตั้งค่าตัวเลือกอินเทอร์เน็ต

CAMServer のFQDNをイントラネットゾーンに追加

インターネット オプションを選択し、「セキュリティ」タブをクリックし、「ローカル イントラネット」を選択 「サイト」ボタンをクリックし、「詳細設定」を選択しサイトのURL(https://test.chat-messenger.com)を追加

ตรวจสอบการเข้าสู่ระบบอัตโนมัติ

คลิก "ระดับที่กำหนดเอง" และภายใต้ "การตรวจสอบสิทธิ์ผู้ใช้" → "เข้าสู่ระบบ" ตรวจสอบให้แน่ใจว่าได้เลือก "เข้าสู่ระบบโดยอัตโนมัติในโซนอินทราเน็ต"

การตั้งค่านี้จำเป็นสำหรับเทอร์มินัลไคลเอนต์ทั้งหมดของผู้ใช้ C&M แต่สามารถจัดการจากส่วนกลางได้โดยใช้คอนโซลการจัดการนโยบายกลุ่ม

  • URL をkoピーしました!
สารบัญ