Crowd または Jira アプリケーションから内部ユーザー管理に戻す
ご使用の Confluence サイトが現在ユーザー管理に Crowd または Jira アプリケーションを使用している場合、以下の説明に従って内部ユーザー管理に戻すことができます。Confluence インスタンスに少数のユーザーしかいない場合、Confluence に手動でユーザーとグループを再作成するほうが簡単です。ユーザーとグループの数が多い場合、関連するユーザーとグループを Confluence 内部ディレクトリに移行するほうが効率的です。
以下に示すいずれのオプションも、影響を受けるユーザーのパスワードをリセットします。作業が完了したら、影響を受けたユーザーに Confluence ログイン ページの「パスワードのリセット」リンクを使用してからログインするよう通知してください。
On this page:
オプション 1 – 手動でユーザーとグループを Confluence に再作成する
少数のユーザーとグループしかない場合に、このオプションを使用します。
- Confluence システム管理者として Confluence にログインします。
- ユーザー ディレクトリの管理画面に進み、[順序] 列の矢印をクリックして、ディレクトリの一覧の先頭に内部ディレクトリを移動します。
confluence-users
およびconfluence-administrators
グループのそれぞれの内部ディレクトリからのユーザーが 1 人以上いることを確認します。- Confluence システム管理者権限を持つ内部ディレクトリにユーザー名があることを確認します。
- このようなユーザーがいない場合、新しくユーザーを追加し、Confluence からログアウトします。
- 追加したユーザーとしてログインし直し、ユーザー ディレクトリ管理画面に戻ります。
- 「Atlassian Crowd」ディレクトリを無効化します。
- 必要なユーザーとグループを手動で Confluence に追加します。内部ディレクトリをディレクトリ一覧の先頭に移動したため、これらのユーザーとグループは内部ディレクトリに追加されます。
- Jira アプリケーション内に存在するグループに Confluence の権限を割り当てていた場合、同じ名前で Confluence にグループを作成する必要があります。
- Jira アプリケーション内に存在するユーザーが Confluence 内でコンテンツを作成したり、Confluence 内で権限を割り当てられていたりする場合、そのユーザーを Confluence で作成する必要があります。
- ユーザーを目的のグループに追加します。
オプション 2 – Crowd / Jira アプリケーションのユーザーとグループを Confluence データベースに転送する
この方法は公式にはサポートされていません。このプロセスについて、アトラシアン株式会社の支援を受けることはできません。
この方法をテスト環境で試し、本番環境に変更をデプロイすることを決定する前にデータベースのフル バックアップを行うことを強くお勧めします。
このオプションは、外部アプリケーション (Crowd または Jira アプリケーション) ユーザーを Confluence データベースに移行する場合に使用します。このタスクを実行するには SQL の知識が必要です。
以下に示す SQL コマンドは、MySQL 用に調整されています。MySQL 以外のデータベースを使用している場合、この SQL を変更してご使用のデータベースで作業する必要があります。
手順 1. バックアップの作成
何か不具合があった場合にデータを復元する手段として、バックアップを作成しておくことが重要です。
- Confluence から、添付ファイルを含む完全 XML サイト バックアップを作成します。
- Confluence を停止します。
- Confluence ホーム ディレクトリおよびインストール ディレクトリのバックアップ コピーを作成します。
- ご使用の外部アプリケーションに対して、上記の手順を繰り返します。
- MySQL 管理ツールから、Crowd/Jira アプリケーションおよび Confluence データベースのデータベース バックアップを作成します。
手順 2. Confluence ユーザー管理の置換
以下の SQL を使用して表のコンテンツを転送することで、グループとユーザーをご使用の外部アプリケーションから Confluence に移動します。提供されている SQL は MySQL 専用のため、他のデータベースの場合は変更する必要があります。
ディレクトリの ID の検索
以下のコマンドを実行し、得られる数字をメモします。これは以下の手順で <Confluence Internal ID> として参照されます。
select id from cwd_directory where directory_name='Confluence Internal Directory';
ユーザー ディレクトリ管理ページから、移動したいユーザー/グループがあるディレクトリの名前を検索します。以下のコマンドを実行し、得られる数字をメモします。これは以下の手順で <外部アプリケーション ID> として参照されます。
select id from cwd_directory where directory_name='<External Directory Name>';
複数のディレクトリで同じグループに所属している重複ユーザーを検索して削除する
以降の手順で重複が発生しないようにするため、Confluence にグループを移動する場合、次の SQL を使用して、外部ディレクトリと内部 Confluence ディレクトリの両方で同じ名前のグループに所属しているユーザーを検索します。
異なるディレクトリで同じグループに所属している、同じ名前のユーザーを検索するには、以下のコマンドを実行します。
SELECT count(*), a.user_name, c.group_name from cwd_user a join cwd_membership b on b.child_user_id = a.id join cwd_group c on c.id = b.parent_id group by 2,3 having count(*)>1
返されたユーザー名とグループをそれぞれ記録しておきます。これは次の手順で必要となります。
- 外部ディレクトリで、それぞれのグループからユーザーを削除します。メンバーシップは Confluence 内部ディレクトリに残ります。
- 上記の SQL を再度実行します。結果が返されなければ、次の手順に移動できます。
グループを Confluence に移動する
内部ディレクトリ内に外部アプリケーションのグループと同じ名前のグループが複数存在する場合があります。これらを見つけるには、次のコマンドを実行します。
select distinct a.id, a.directory_id, a.group_name, d.directory_name from cwd_group a join cwd_group b on a.group_name=b.group_name join cwd_directory d on d.id=a.directory_id where a.directory_id != b.directory_id;
前のクエリで結果を得た場合、重複する各グループ名について、Confluence 内部ディレクトリでのそのグループの ID (<internal group id>) と外部アプリケーションでの ID (<external group id>) を見つけます。以下を実行します。
update cwd_group_attribute set group_id=<internal group id>, directory_id=<Confluence Internal Id> where group_id=<external group id>; update cwd_membership set child_group_id=<internal group id> where child_group_id=<external group id>; update cwd_membership set parent_id=<internal group id> where parent_id=<external group id>; delete from cwd_group where id=<external group id>;
外部アプリケーション内のすべてのグループを Confluence 内部ディレクトリに移動します。
update cwd_group set directory_id=<Confluence Internal ID> where directory_id=<External Application ID>;
ユーザーを Confluence に移動する
内部ディレクトリ内に外部アプリケーションのユーザーと同じ名前のユーザーが複数存在する場合があります。これらを見つけるには、次のコマンドを実行します。
select distinct a.id, a.directory_id, a.user_name, d.directory_name from cwd_user a join cwd_user b on a.user_name=b.user_name join cwd_directory d on d.id=a.directory_id where a.directory_id != b.directory_id;
前のクエリで結果を得た場合、重複する各ユーザー名について、Confluence 内部ディレクトリでのそのユーザーの ID (<internal user id>) と外部アプリケーションでの ID (<external user id>) を見つけます。以下を実行します。
update cwd_membership set child_user_id=<internal user id> where child_user_id=<external user id>; update cwd_user_credential_record set user_id=<internal user id> where user_id=<external user id>; update cwd_user_attribute set user_id=<internal user id>, directory_id=<Confluence Internal ID> where user_id=<external user id>; delete from cwd_user where id=<external user id>;
外部アプリケーション内のすべてのユーザーを Confluence 内部ディレクトリに移動します。
update cwd_user set directory_id=<Confluence Internal ID> where directory_id=<External Application ID>;
外部アプリケーション ディレクトリの削除
- 内部ディレクトリが一番上に来るようにディレクトリの順番を変更し、内部ディレクトリをアクティブ化する必要があります。
ディレクトリが内部ディレクトリと、削除しようとしている外部アプリケーション ディレクトリの 2 つのみの場合、以下を実行します。
update cwd_app_dir_mapping set list_index = 0 where directory_id = <Confluence Internal ID>;
- 3 つ以上ディレクトリがある場合、最上部が内部ディレクトリ (list_index 0)、最下部が削除しようとしている外部アプリケーション ディレクトリになるように再配列する必要があります。
以下のコマンドを使用して、ディレクトリとその順序を表示します。
select d.id, d.directory_name, m.list_index from cwd_directory d join cwd_app_dir_mapping m on d.id=m.directory_id order by m.list_index;
必要な順序になるようにリスト インデックスを変更します。ディレクトリの順序は次のコマンドを使用して変更できます。
update cwd_app_dir_mapping set list_index = <position> where directory_id = <directory id>;
- 内部ディレクトリが有効であることを確認します。
内部ディレクトリをリストします。有効化されたディレクトリの active 列が "T" に設定されます。
select id, directory_name, active from cwd_directory where id = <Internal Directory id>;
内部ディレクトリがアクティブでない場合、次のようにしてアクティブ化します。
update cwd_directory set active = 'T' where id = <Internal Directory id>;
ディレクトリが正しい順序で配列されたら、外部アプリケーション ディレクトリをディレクトリの順序から削除します。
delete from cwd_app_dir_operation where app_dir_mapping_id = (select id from cwd_app_dir_mapping where directory_id = <External Application ID>); delete from cwd_app_dir_mapping where directory_id = <External Application ID>;
外部アプリケーション ディレクトリはデータベース内の他の複数の表で参照されています。このディレクトリへの残りの参照を削除する必要があります。
delete from cwd_directory_attribute where directory_id=<External Application ID>; delete from cwd_directory_operation where directory_id=<External Application ID>;
外部ディレクトリへのすべての参照を削除したら、以下を使用してディレクトリを削除します。
delete from cwd_directory where id = <External Application ID>;
パスワードのリセット
削除した外部ディレクトリに存在した、管理者を含むすべてのユーザーはログインできなくなります。これらのユーザーのパスワードは、ログイン ページの「パスワードをお忘れですか?」リンクを選択してリセットする必要があります。または、「パスワードを復元して管理者ユーザー権限を回復する」の説明に従って管理者パスワードをリセットしてから、管理画面のユーザー管理ページでユーザーのパスワードを設定します。