2021年12月3日金曜日

プリンタ使用時のユーザ名の正規化

 一部のシステムでは、ユーザが印刷すると、ユーザ名にドメインの完全なコンテキストが含まれます。
この場合、ユーザ名の完全なコンテキスト(例: alex.wallaby@papercut.com) がPaperCutに渡されます。
印刷の利用状況は、標準のユーザ名(例: alex.wallaby) ではなく、完全なコンテキスト・ユーザ名でトラッキングされます。

また、UPNや標準Azure ADを同期に使用する場合にもこの問題は発生します。
例えば、PaperCutのユーザ名は「alex.wallaby@papercut.com」で、
プリント・ジョブの所有者は「AzureAD\alex.wallaby@papercut.com」のようになります。
この場合、ユーザ名の「AzureAD\」の部分を切り詰める正規化を行います。
このケースは後述するexample6 を参照してください。
注記: 標準Azure ADを使用していてPaperCutのユーザ名がUPNであるにも関わらず、
「alex.wallaby」がユーザ名と一致しないなどの理由でジョブが拒否される現象が発生する可能性があります。
この場合、設定キー「user-source.ad.upn-as-username」の値が「Y」に設定されているかを確認してください。
この設定キーは、PaperCutがユーザ名を照合する際にドメインを切り捨てることを阻止します。

PaperCutは、完全なユーザ名のうち、ユーザ名の要素をコンテキストで抽出するように設定できます。

 ① PaperCut管理画面へログイン

 ② <オプション>を選択

 ③ 「アクション」から「設定エディタ(応用)」をクリック

 ④ クイック検索に設定キー「system.normalize-network-username-regex」を入力して検索実行

 ⑤ 値欄にユーザ名をフィルタする正規表現を入力。入力完了後、[適用] ボタンをクリックして設定を保存。


ユーザ名フィルタの正規表現の仕組み

正規表現は、テキストを検索するための非常に便利な方法ですが、大変複雑です。
下記にいくつかの例を記載します。
正規表現に関する詳細情報は下記のサイトを参考にしてください。

■Summary of regular-expression constructs (英文)
https://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html#construct

■正規表現のチュートリアル (英文)
https://www.regular-expressions.info/

また、正規表現を検証するサイトもあります。

■Regular expressions101
https://regex101.com/


正規表現の例

Example 1

例えば「jsmith.dept.orgname」ユーザ名をフィルタリングし、「jsmith」を抽出する場合、次の正規表現を使用します。

^([^\.]+)

上記例は、文字列の先頭から1つ以上の文字を一致させて抽出し、その文字列が「. (ピリオド/フルストップ)」までを抽出するという意味になります。


Example 2

Novellネットワークは印刷ユーザ名を次のように設定することがよくあります:
.jsmith.dept.orgname (先頭の「.」はキャラクタ) ユーザ名「.jsmith.dept.orgname」をフィルタリングし、
ユーザ名から「jsmith」を抽出するためには、次の正規表現を使用します。

^\.([^\.]+)

上記例は、文字列の先頭の文字列が「.」と一致し、次の「.」(ピリオド/フルストップ)と一致するまでの文字列を抽出します。


Example 3

ユーザ名「prefix.jsmith.dept.orgname」から「jsmith」を抽出する場合、次の正規表現を使用します。

^prefix\.([^\.]+)

上記例は、文字列の先頭から「prefix.」を一致させてから、次の「.」(ピリオド/フルストップ)と一致するまでの文字列を抽出します。
つまり、「prefix.」から次のピリオド「.」までの間の文字列を抽出します。


Example 4

「.jsmith.dept.orgname」もしくは「jsmith\DEPT\ORGNAME」と表示されるユーザ名をフィルタリングする場合、次の正規表現を使用します。

^\.?([^\.\\]+)


Example 5

LPD/LPR 印刷プロトコルを使用している場合、
環境によりユーザ名の末尾にIPアドレスが付加された状態でプリント・ジョブが到着する場合があります: 例: jsmith (192.168.4.20)
次の正規表現は、空白文字とそれに続くIPアドレスを取り除き、空白文字の前に表示される文字列のみをユーザ名として抽出します。

^([^\s]+)


Example 6

Azure ADに連携されているワークステーションを使用している場合、ジョブの所有者は「AzureAD\j.smith@orgname.com」となることがあります。
この場合先頭の「AzureAD\」を削除し、UPNの名前だけを残す必要があります。

^AzureAD\\([\S]+)



-------------------------

https://www.papercut.com/kb/Main/NormalizingUsernamesFromPrintUsage





0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。