ken_nogi/NodeSrv/apps/org-master-sync/pleasanter-saml/setup-手順.md
Kenichiro NOGI ce58cb4be4 初回コミット: dev配下(NodeSrv/Pleasanter等)をGitea管理下に統合
GitHub(nextgroup2706/ken_nogi)は今後使わず自社Gitea運用に切替え。
NodeSrvは旧リポジトリの履歴を破棄しファイルのみ統合(Dokploy用サービスアカウントは
別途mygit-admin/NodeSrv.gitに履歴あり)。notepmエクスポート(12GB)とPleasanter
インストーラzip(208MB)はサイズが大きいため.gitignoreで除外。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 15:37:06 +09:00

4.8 KiB

LINEWORKS → Keycloak → プリザンター(テスト環境) SSO設定手順

全体構成

LINEWORKS(IdP, SAML)
   │  ※既存連携済み(Identity Providers > lineworks)。変更不要
   ▼
Keycloak(nexthdレルム, SAML Identity Broker)
   │  ← 今回新規作成するSAML Client
   ▼
プリザンター(SP, nextoffice2.next-hd.net)
   │  ← Authentication.json にSAML設定追加

LINEWORKS側は既にKeycloakのSAML IdPとして稼働中のため、今回の作業はKeycloak側の新規SAML Client作成と、プリザンター側の設定ファイル編集のみ。

前提の値

項目
プリザンターURL https://nextoffice2.next-hd.net/pleasanter/
SP Entity ID(想定) https://nextoffice2.next-hd.net/pleasanter/Saml2
ACS URL(想定、ログイン後の戻り先) https://nextoffice2.next-hd.net/pleasanter/Users/SamlLogin
Keycloak SAML IdPメタデータURL https://auth91.next-hd.net/realms/nexthd/protocol/saml/descriptor

※ACS URLはプリザンター(.NET Core版、Sustainsys.Saml2ライブラリ使用)の一般的な設定例からの推測。実際に接続テストしてエラーが出た場合、後述の「うまくいかない場合」を参照。

手順1: Keycloakに新規SAML Clientを作成

https://auth91.next-hd.net/admin/master/console/、レルムを nexthd に切替。

  1. Clients → Create client
  2. Client type: SAML
  3. Client ID: https://nextoffice2.next-hd.net/pleasanter/Saml2
  4. Name: プリザンター(テスト)SSO
  5. Next
  6. Home URL: https://nextoffice2.next-hd.net/pleasanter/
  7. Valid redirect URIs: https://nextoffice2.next-hd.net/pleasanter/Users/SamlLogin
  8. Save

保存後、Client詳細画面の Settings タブで以下を確認・設定:

  • Name ID format: email
  • Force name ID format: ON
  • Sign documents: ON(推奨。OFFで動かない場合のみ検討)

手順2: プリザンター側 Authentication.json 編集

対象ファイル: プリザンターサーバー上の Implem.Pleasanter/App_Data/Parameters/Authentication.json

既存の内容を確認した上で、以下の内容を追加・マージする(既存キーがあれば上書きせず、SamlParametersセクションのみ追加するイメージ)。

{
  "Provider": "SAML",
  "SamlParameters": {
    "SamlTenantId": 1,
    "Attributes": {
      "MailAddress": "{NameId}"
    },
    "SPOptions": {
      "PublicOrigin": "https://nextoffice2.next-hd.net/pleasanter/",
      "EntityId": "https://nextoffice2.next-hd.net/pleasanter/Saml2",
      "ReturnUrl": "https://nextoffice2.next-hd.net/pleasanter/Users/SamlLogin"
    },
    "IdentityProviders": [
      {
        "EntityId": "https://auth91.next-hd.net/realms/nexthd/protocol/saml/descriptor",
        "LoadMetadata": true
      }
    ]
  }
}
  • LoadMetadata: true により、KeycloakのSAMLメタデータ(署名証明書・SSO URL等)を自動取得する。証明書の手動コピペは不要な想定
  • Attributes.MailAddress: "{NameId}" は、KeycloakのNameID Format を email にした設定(手順1)と対応。プリザンター側はNameIDに入ってきた値をメールアドレスとして扱う
  • 氏名(Name)属性は今回未設定。LINEWORKS→Keycloakの既存連携がメールアドレスしか渡さない制約(README記載)があるため、まずメールアドレスのみでログイン疎通を確認してから、必要なら氏名マッピングを追加する

編集後、プリザンターのアプリケーションプール/サービスを再起動して設定を反映(既存運用手順に従う)。

手順3: 動作確認

  1. https://nextoffice2.next-hd.net/pleasanter/ にブラウザでアクセスし、ログイン画面にSAMLログインの選択肢が出るか確認
  2. SAMLログインを選択 → Keycloakのログイン画面 → 「LINE WORKSでログイン」を選択 → LINE WORKS認証 → プリザンターへリダイレクトされてログイン完了、の流れを確認

うまくいかない場合

  • ACS URL不一致エラー: Keycloak側「Valid redirect URIs」とプリザンター側「ReturnUrl」が完全一致しているか確認。実際のプリザンター側エラーログ(またはブラウザのネットワークタブ)に表示される実際のACS URLを見て、両方をそこに合わせる
  • 署名検証エラー: Keycloak側「Sign documents」をOFFにして再試行、またはプリザンター側で署名検証を無効化する設定(WantAssertionsSigned等)を確認
  • ユーザーが見つからない/作成されないエラー: プリザンター側でSAML初回ログイン時のユーザー自動作成設定(AllowToCreateUsers等の項目名、要現物確認)を確認

エラーメッセージが出たら、その内容を教えてもらえれば原因を特定する。