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>
4.8 KiB
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 に切替。
- Clients → Create client
- Client type: SAML
- Client ID:
https://nextoffice2.next-hd.net/pleasanter/Saml2 - Name:
プリザンター(テスト)SSO - Next
- Home URL:
https://nextoffice2.next-hd.net/pleasanter/ - Valid redirect URIs:
https://nextoffice2.next-hd.net/pleasanter/Users/SamlLogin - 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: 動作確認
https://nextoffice2.next-hd.net/pleasanter/にブラウザでアクセスし、ログイン画面にSAMLログインの選択肢が出るか確認- SAMLログインを選択 → Keycloakのログイン画面 → 「LINE WORKSでログイン」を選択 → LINE WORKS認証 → プリザンターへリダイレクトされてログイン完了、の流れを確認
うまくいかない場合
- ACS URL不一致エラー: Keycloak側「Valid redirect URIs」とプリザンター側「ReturnUrl」が完全一致しているか確認。実際のプリザンター側エラーログ(またはブラウザのネットワークタブ)に表示される実際のACS URLを見て、両方をそこに合わせる
- 署名検証エラー: Keycloak側「Sign documents」をOFFにして再試行、またはプリザンター側で署名検証を無効化する設定(
WantAssertionsSigned等)を確認 - ユーザーが見つからない/作成されないエラー: プリザンター側でSAML初回ログイン時のユーザー自動作成設定(
AllowToCreateUsers等の項目名、要現物確認)を確認
エラーメッセージが出たら、その内容を教えてもらえれば原因を特定する。