THỰC ĐƠN

統合Windows認証でのSSO

mục lục

Tổng quan

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が Tên hiệu trưởng của người dùng (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 (Tên dịch vụ chính) là tên dùng để xác định duy nhất một dịch vụ cụ thể trên Active Directory trong xác thực Kerberos. Nếu bạn truy cập dịch vụ bằng FQDN, việc đăng ký SPN sẽ cho phép máy khách yêu cầu thành công phiếu Kerberos cho dịch vụ bạn đang truy cập.

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

Tài khoản dịch vụ

Kerberos認証用のサービスアカウントを作成します。ドメインユーザーであれば可能ですが、通常ユーザーとサービスアカウントを分離し、誤操作やパスワードポリシーの適用範囲を明確にするため、OU=Tài khoản dịch vụ Giống như, OU Người sử dụng Khác với bộ điều khiển miền Active Directory,cam-svc Tạo một cái mới.

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

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

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

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

Đăng ký SPN với tài khoản dịch vụ

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

Đăng ký SPN bằng tài khoản dịch vụ đã tạo ở trên.

- Có thể sử dụng bất kỳ thiết bị đầu cuối nào là một phần của miền. Tuy nhiên, cần có quyền quản trị viên miền.
・SPN cũng được sử dụng trong giao tiếp HTTPS.HTTP/tên máy chủBạn phải đăng ký theo mẫu sau:

以下のコマンドで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

Đặt tùy chọn Internet

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

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

Kiểm tra đăng nhập tự động

Nhấp vào "Cấp tùy chỉnh" và trong "Xác thực người dùng" → "Đăng nhập", đảm bảo "Đăng nhập tự động trong vùng mạng nội bộ" được chọn.

Cài đặt này là bắt buộc trên tất cả các thiết bị đầu cuối máy khách của người dùng C&M nhưng nó có thể được quản lý tập trung bằng Bảng điều khiển quản lý chính sách nhóm.

  • URLをコピーしました!
mục lục