1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LDAP Managerを使ってみた! 3-2. 管理者メンテナンス確認・応用編

Last updated at Posted at 2025-02-26

前回の記事では、管理者メンテナンスの基本的な機能を検証するための設定を行いました。
今回は設定した内容の確認と、応用としてロール設定とPDF出力機能を検証します。

確認

管理者ユーザメンテナンス

TomcatとLDAP Managerが起動していることを確認し、http://(ホスト名):(ポート)/admin-mtn-svにアクセス。LDAP Managerのリモートユーザでログインします。
pic (1).png
すると、このような画面に遷移します。
pic (2).png
ここではまず、「管理者ユーザメンテナンス」を選択します。
次の画面に遷移します。
前回、「ユーザメンテナンスロール設定画面」ですべての操作を許可する設定にしたので、その通りに「更新」、「追加」などの操作が表示されていることがわかります。
pic (3).png
ユーザを追加してみます。
ユーザの追加(編集)画面は、設定した通りRDN属性のユーザID=cnの他、「基本情報」タブで英語姓=sn、英語名=givenName、パスワード=userPasswordが入力できるようになっています。
pic (4).png
追加に成功すると、次のような画面になります。
pic (5).png
pic (6).png
このユーザを「編集」すると、同様に英語姓=sn、英語名=givenName、パスワード=userPasswordが編集可能になっています。
pic (7).png
pic (8).png
pic (9).png
pic (10).png
このユーザを削除しようとすると、アカウント削除方法に「無効」を指定しているので、アカウントの無効化処理が実施されます。
pic (11).png
pic (12).png
無効化されたアカウントは、灰色で表示されるようになり、exgEnabledFlagにもdisabledが格納されていることがわかります。
pic (13).png
そして、このユーザを復帰させると、画面表示の通り「追加」扱いでユーザがベースDNに復帰します。
pic (14).png
pic (15).png
pic (16).png
対象ユーザを指定してCSV出力させると、表示項目の通りのCSVが得られます。
pic (17).png
右上「検索画面を表示」をクリックすると、設定どおり検索KEYとしてユーザID=cnとLDAPフィルタが使用できるようになっています。
pic (18).png
ここでLDAPフィルタを選択すると、こちらも設定どおり英語姓=sn、英語名=givenNameで検索ができるようになっています。
pic (19).png
またよく使うボタン「姓名」があり、これを押下すると英語姓=snと英語名=givenNameのANDのフィルタがセットされるようになっています。
pic (20).png

管理者パスワードメンテナンス

次に、右上「ホーム」をクリックして以下の画面に戻り、「管理者パスワードメンテナンス」を選択します。
次の画面に遷移します。
何も入力せず、「検索」を押下します。(ここの検索設定も英語姓=snと英語名=givenNameが使用できるようになっています)
pic (21).png
pic (22).png
設定どおりの内容で、ユーザ一覧が表示されます。
pic (23).png
user1ユーザに設定されているパスワードでLDAP認証ができることを確認します。
pic (24).png
この後、パスワードを変更します。
pic (25).png
pic (26).png
パスワードが正常に変更され、新しいパスワードでの認証ができました。
pic (27).png
プラグイン側でのマッピングの設定をしていなくても、userPassword属性が更新されることがわかります。

管理者グループメンテナンス

次は、「管理者グループメンテナンス」をホームで選択します。
「初回表示時に一覧表示」を許可しているため、グループ一覧表示画面が現れます。
また、検索項目が設定どおりのグループ名=cnになっていることがわかります。
pic (28).png
まずはグループを追加してみます。
「基本情報」タブには組織単位=ouの入力項目があります。
pic (29).png
また、「追加情報」タブには職種=businessCategoryの入力項目があります。
pic (30).png
登録すると、一覧画面はこのようになります。
pic (31).png
「表示」ボタンを押下して、「グループメンテナンス 参照」画面に移ります。
pic (32).png
「グループメンテナンス 参照」画面の「追加」ボタンでは、子グループの追加が行えます。
pic (33).png
追加して「ツリー表示」させると親グループ「グループ1」の子グループとして作成されていることがわかります。
pic (34).png
「編集」ボタンでは自身の情報を編集可能です。
pic (35).png
「移動」ボタンではグループエントリの配置先を変更できます。
pic (36).png
中央右側、「メンバ編集」ボタンからメンバとなるユーザおよびグループを追加します。
まずはユーザメンバを追加します。
メンバ(ユーザ)の追加を押下すると、次の画面に遷移します。
「検索条件を指定して検索」では、コンポーネントの「メンバ検索設定」で指定した通りの検索項目で検索が実施可能です。
pic (37).png
「階層から検索」では、ユーザのベースDNからコンテナを辿って階層的にユーザを検索できます。
以下のような階層の場合は、ルート直下からuser1を、kaisou1コンテナ以下からuser2を選択できます。
pic (38).png
pic (39).png
pic (40).png
2人を追加します。
pic (41).png
pic (42).png
pic (43).png
メンバを追加すると、特定のユーザを拡張グループメンバに追加できるようになります。
今回は拡張グループメンバを「上長」としているので、以下のメンバ編集画面の「上長」列にチェックを入れて「確定」すると、そのメンバは拡張グループメンバとなります。
pic (44).png
pic (45).png
pic (46).png
pic (47).png
次に、グループをメンバとして追加してみます。
事前に任意のグループを作成します。
pic (48).png
メンバの編集画面で、メンバ(グループ)の追加を押下します。
先ほどと同じように、検索条件もしくは階層から検索できます。
pic (49).png
pic (50).png
「子グループの子グループ」グループをメンバに追加します。
pic (51).png
pic (52).png
pic (53).png
このようにして、グループをメンバとして追加できます。
pic (54).png

応用 - ロールでの権限管理

管理者メンテナンスでは、「ロール」を用いた権限管理が可能です。
ロールは「ユーザメンテナンス」、「パスワードメンテナンス」、「グループメンテナンス」、「アグリゲータアップロード」それぞれに作成し、グループに紐づけます。
また、作成したロールに対してコンポーネントを割り当てることで、操作する対象や表示する内容を制御します。
文面ではわかりにくいと思いますので、実際に検証してみます。

LDAP Manager 本体側の設定

まずは検証用にリモートユーザを作成します。
pic (55).png
また、リモートユーザが属するグループを作成します。
pic (56).png

管理者メンテナンスの設定

「認証情報」 > 「グループ情報」から、LDAP Manager本体側に追加したグループと同名のグループを作成します。
pic (57).png
次に、「アプリケーション情報」より任意のツールの「コンポーネント情報」に遷移し、「追加」を押下してコンポーネントを追加します。
コンポーネントの設定方法については前回紹介したため割愛します。
pic (58).png
pic (59).png
コンポーネントを設定したら、次はコンポーネントを設定したツールにロールを追加します。
今回はユーザメンテナンスにコンポーネントを設定したので、ユーザメンテナンスにロールを追加します。
紐づける対象とするグループ、コンポーネントを設定します。
その他の設定は前回と同じ方法で設定します。
pic (60).png
pic (61).png
「エントリ操作設定」タブにて、許可された操作の数を以下のように大幅に少なくしました。
pic (62).png
最後に、「メニュー情報」にてメニューに表示するロールを設定します。
今回は新たにカテゴリを追加してみます。
pic (63).png
追加したカテゴリにロールを追加します。
pic (64).png
この設定を保存して、完了です。

確認

追加したロールはrolegroupグループに紐づいています。
まずはrolegroupグループに参加していないユーザ、testuserでログインしてみます。
ここでは、今までと変わりのないメニュー画面が見えています。
pic (65).png
管理者ユーザメンテナンスの操作も、今まで通りすべての操作ができます。
pic (66).png
では、roleuserユーザでログインしてみます。
すると設定した通り、「ロール確認用」というカテゴリの下に、「ロール検証用」という名称の項目が表示されるようになります。
pic (67).png
「ロール検証用」を押下してユーザメンテナンス画面に入ると、操作項目がかなり少なくなっていることがわかります。
また、表示項目もコンポーネントの設定どおりで、「ユーザメンテナンス1」コンポーネントの内容と異なることがわかります。
pic (68).png
このようにして、管理者メンテナンスのロールの設定が可能です。

応用 - PDF印刷機能

管理者ユーザメンテナンスにはPDF出力という機能があります。
PDF出力機能では、テンプレートに基づいて、指定のユーザ情報をPDF化することが可能です。
この機能は管理者メンテナンスのWebアプリケーションをデプロイしただけでは機能しないので、追加でいくつかの設定が必要です。
まずはテンプレートを作成します。
サンプルを以下に書き換え、<tomcat_home>\webapps\admin-mtn-sv\WEB-INF\configTool\conf\template\pdf\jpnに格納しました。

PDFtemplete.xml
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo">
	<xsl:output method="xml" version="1.0" omit-xml-declaration="no" indent="yes"/>
	<xsl:param name="versionParam" select="'1.0'"/>
	<!-- ========================= -->
	<!-- root element: projectteam -->
	<!-- ========================= -->
	<xsl:template match="exgen-html-print">
		<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
			<fo:layout-master-set>
				<fo:simple-page-master master-name="simpleA4" page-height="29.7cm" page-width="21cm" margin-top="2cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm">
					<fo:region-body/>
					<fo:region-before extent="30mm" display-align="center" />
				</fo:simple-page-master>
			</fo:layout-master-set>

			<fo:page-sequence master-reference="simpleA4">
				<fo:static-content flow-name="xsl-region-before">
					<fo:block text-align="right">

					<!-- ====================================== -->
					<!-- 画像ファイル等のリンクを「file:/」+「画像のフルパス」で記述 -->
					<!-- ====================================== -->
					<!--
					<fo:external-graphic src="file:/C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\admin-mtn-sv\WEB-INF\configTool\conf\template\pdf\jpn\exgenlogo.gif" width="40mm" content-width="scale-to-fit" />
					-->
					</fo:block>
				</fo:static-content>

				<fo:flow flow-name="xsl-region-body">

					<xsl:apply-templates select="exgen-html-user"/>

				</fo:flow>
			</fo:page-sequence>
		</fo:root>
	</xsl:template>

	<!-- ========================= -->
	<!-- child element: member     -->
	<!-- ========================= -->
	<xsl:template match="exgen-html-user">

		<fo:block font-family="MS-Mincho" font-size="12pt" font-weight="bold" space-after="5mm"><xsl:value-of select="systemdate"/></fo:block>

		<fo:block font-family="MS-Mincho" font-size="20pt" font-weight="bold" space-after="10mm">システム利用開始のご案内</fo:block>

		<fo:block-container start-indent="1mm"  font-family="MS-Mincho" font-size="14pt">
			<fo:block>システム利用通知書</fo:block>
		</fo:block-container>

		<fo:table width="7cm" table-layout="fixed" border-color="#000000">
			<fo:table-body>
				<fo:table-row font-family="MS-Mincho" font-size="16pt">
					<fo:table-cell padding="2pt" width="8.0cm">
						<fo:block font-size="16pt"> </fo:block>
					</fo:table-cell>
				</fo:table-row>
			</fo:table-body>
		</fo:table>

		<fo:table width="7cm" table-layout="fixed" border-color="#000000">
			<fo:table-body>
				<fo:table-row font-family="MS-Mincho" font-size="16pt">
					<fo:table-cell padding="2pt" width="4.5cm">
						<fo:block font-size="20pt">************************************************</fo:block>
					</fo:table-cell>
				</fo:table-row>
			</fo:table-body>
		</fo:table>

		<fo:table width="7cm" table-layout="fixed" border-color="#000000">
			<fo:table-body>
				<fo:table-row font-family="MS-Mincho" font-size="16pt">
					<fo:table-cell padding="2pt" width="4.5cm">
						<fo:block font-size="16pt">ユーザID</fo:block>
					</fo:table-cell>
					<fo:table-cell padding="2pt" width="1.0cm">
						<fo:block font-size="16pt"></fo:block>
					</fo:table-cell>
					<fo:table-cell padding="2pt" width="4.5cm">
						<fo:block white-space-treatment="preserve" white-space-collapse="false" linefeed-treatment="treat-as-space">
							<xsl:value-of select="cn"/>
						</fo:block>
					</fo:table-cell>
				</fo:table-row>
			</fo:table-body>
		</fo:table>

		<fo:table width="7cm" table-layout="fixed" border-color="#000000">
			<fo:table-body>
				<fo:table-row font-family="MS-Mincho" font-size="16pt">
					<fo:table-cell padding="2pt" width="4.5cm">
						<fo:block font-size="16pt">英語姓</fo:block>
					</fo:table-cell>
					<fo:table-cell padding="2pt" width="1.0cm">
						<fo:block font-size="16pt"></fo:block>
					</fo:table-cell>
					<fo:table-cell padding="2pt" width="8.0cm">
						<fo:block white-space-treatment="preserve" white-space-collapse="false" linefeed-treatment="treat-as-space">
							<xsl:value-of select="sn"/> 
						</fo:block>
					</fo:table-cell>
				</fo:table-row>
			</fo:table-body>
		</fo:table>

		<fo:table width="7cm" table-layout="fixed" border-color="#000000">
			<fo:table-body>
				<fo:table-row font-family="MS-Mincho" font-size="16pt">
					<fo:table-cell padding="2pt" width="4.5cm">
						<fo:block font-size="16pt">英語名</fo:block>
					</fo:table-cell>
					<fo:table-cell padding="2pt" width="1.0cm">
						<fo:block font-size="16pt"></fo:block>
					</fo:table-cell>
					<fo:table-cell padding="2pt" width="8.0cm">
						<fo:block white-space-treatment="preserve" white-space-collapse="false" linefeed-treatment="treat-as-space">
							<xsl:value-of select="givenName"/> 
						</fo:block>
					</fo:table-cell>
				</fo:table-row>
			</fo:table-body>
		</fo:table>

		<fo:table width="7cm" table-layout="fixed" border-color="#000000">
			<fo:table-body>
				<fo:table-row font-family="MS-Mincho" font-size="16pt">
					<fo:table-cell padding="2pt" width="4.5cm">
						<fo:block font-size="16pt">備考</fo:block>
					</fo:table-cell>
					<fo:table-cell padding="2pt" width="1.0cm">
						<fo:block font-size="16pt"></fo:block>
					</fo:table-cell>
					<fo:table-cell padding="2pt" width="8.0cm">
						<fo:block>
							<xsl:for-each select="description"> 
								<xsl:value-of select="." />
							</xsl:for-each>
						</fo:block>
					</fo:table-cell>
				</fo:table-row>
			</fo:table-body>
		</fo:table>

		<fo:table width="7cm" table-layout="fixed" border-color="#000000">
			<fo:table-body>
				<fo:table-row font-family="MS-Mincho" font-size="16pt">
					<fo:table-cell padding="2pt" width="4.5cm">
						<fo:block font-size="20pt">************************************************</fo:block>
					</fo:table-cell>
				</fo:table-row>
			</fo:table-body>
		</fo:table>

		<fo:table width="7cm" table-layout="fixed" border-color="#000000">
			<fo:table-body>
				<fo:table-row font-family="MS-Mincho" font-size="16pt">
					<fo:table-cell padding="2pt" width="8.0cm">
						<fo:block font-size="16pt"> </fo:block>
					</fo:table-cell>
				</fo:table-row>
			</fo:table-body>
		</fo:table>

		<fo:block-container start-indent="1cm"  font-family="MS-Mincho" font-size="12pt">
			<fo:block> 会社名 </fo:block>
			<fo:block>TEL: 000-000-000 </fo:block>
		</fo:block-container>

		<fo:block break-after="page" />

	</xsl:template>

</xsl:stylesheet>

フォントファイルを作成するため、Apache FOPと呼ばれるXML-FO(レイアウトと出力を制御する仕様)の実装系のバイナリを提供サイトからダウンロードします。
圧縮フォルダを解凍し、内部のfopフォルダをC:\Program Filesに配置します。
pic (69).png
C:\fontsフォルダを作成します。
<tomcat_home>\webapps\admin-mtn-sv\WEB-INF\configTool\prepareFontMetrixFile.batをエディタで開き、

prepareFontMetrixFile.bat
SET CLASS_PATH="%FOP_PATH%\build\fop-2.10.jar;%FOP_PATH%\lib\*"

上記部分を修正して保存、バッチを実行します。
すると、C:\fonts以下にttcファイルとxmlファイルが生成されているので、これらを<tomcat_home>\webapps\admin-mtn-sv\WEB-INF\configTool\conf\templete\pdf\fontsに格納します。
pic (70).png
<tomcat_home>\webapps\admin-mtn-sv\WEB-INF\configTool\conf\template\pdf\fop_ja.xconfを開き、要素font-baseを以下の通りに変更します。

fop_ja.xconf
<font-base>file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%2010.1/webapps/admin-mtn-sv/WEB-INF/configTool/conf/template/pdf/fonts</font-base>

最後に、管理者ユーザメンテナンスロール設定より、PDFダウンロードを「許可する」設定にし、テンプレートファイル名を変更して設定は完了です。
pic (71).png
この状態で管理者メンテナンスにログインし、管理者ユーザメンテナンスにてユーザを選択した状態で「PDFダウンロード」を押下、ダウンロードします。
pic (72).png
pic (73).png

まとめ

管理者メンテナンスの主要機能についてのご紹介でした。ここでご紹介したもの以外に、LDAPやDBからの情報を基に入力補助を行う機能や、ユーザ情報CSVファイルを「アグリゲータレシーバ」にアップロードする機能などが管理者メンテナンスには存在します。
次の記事では、利用者自身がユーザ情報を操作できる 利用者プロファイルメンテナンス について検証します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?