MENU

統合Windows認証でのSSO

Daftar isi

ringkasan

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が 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)

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 (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 を作成します。

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

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

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

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

サービスアカウントでSPN登録

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

上記で作成したサービスアカウントでSPN登録を行います。

・ドメインに参加している任意の端末でOK。ただし、ドメイン管理者権限が必要です。
・HTTPS通信においてもSPNは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

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.

Pengaturan ini diperlukan untuk semua terminal klien pengguna C&M, namun dapat dikelola secara terpusat menggunakan Konsol Manajemen Kebijakan Grup.

  • URLをコピーしました!
Daftar isi