Windowsと互換性のあるIPP共有プリンタをパスワードで保護するためのCUPSの設定

Windowsと互換性のあるIPP共有プリンタをパスワードで保護するためのCUPSの設定

現在の構成では、Windowsにプリンタをインストールできますが、ウィザードは資格情報の入力を求められず、印刷できません。しかし、URLに資格情報を提供するhttp://some_user:password@serverip:port/printers/myprinter)、Windowsは常にローカルアカウント名を使用し、基本認証を試みていないようです(リンクされた投稿で説明されています)。

Denying user "local_windows_user" access to printer "myprinter"...
Print-Job client-error-not-authorized: Not allowed to print.
[Client x] Returning IPP client-error-not-authorized for Print-Job

Windowsクライアントがパスワードの入力を強制的に表示しないように、構成に欠落しているものはありますか? Windowsでポートを設定して資格情報を指定しても、結果は変わりません。回避策として、認証のためにCUPSにURLのみを表示させることはできますか?

現在許可されている場所で基本認証を試してみましたが、これによりメッセージが表示されず、インストールが失敗します。

some_userがWebインターフェースを介してmyprinterを使用して印刷できるようにします。資格情報の入力を求められたら、接続はhttpsにアップグレードされます。テストDefaultEncryption Never結果は変わらなかった。


cupd.conf

Listen localhost:631
Listen serverip:port

Browsing On
BrowseLocalProtocols dnssd

DefaultAuthType Basic

<Location />
  Order allow,deny 
</Location>
    
# Restrict access to the admin pages...
<Location /admin>
  AuthType Default
  Order allow,deny
  Require user @SYSTEM
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Restrict access to log files...
<Location /admin/log>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Set the default printer/job policies...
<Policy default>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  <Limit Get-Printer-Attributes>
    #AuthType Default
    Order allow, deny
  </Limit>

  <Limit Create-Job Print-Job Print-URI Validate-Job>
    Order deny, allow
    AuthType Basic
  </Limit>

[ommitted]

バージョン

Server: Fedora 37 Server
Cups Version: cups-2.4.2-5.fc37
Windows Version: Windows 10 Pro 21H2 (tested, not working), Windows 10 Pro 22H2 (tested, not working)

ノート

在庫 Linux Mint 21.1 Live でテスト済み。すべてのプリンタは印刷時に自動的にパスワードを検出し、プロンプトを表示します。サーバーでは、ユーザーはとしてログインしますsome_user


基本認証が必要な場合Get-Printer-Attributes

Windowsでは、「接続できません..プリンタ名などを確認してください...」という一般的なエラーが表示されます。

カップログ:

POST /printers/myprinter HTTP/1.1
cupsdSetBusyState: newbusy="Active clients", busy="Active clients"
[Client 6] Read: status=200, state=6
[Client 6] No authentication data provided.
[Client 6] 2.0 Get-Printer-Attributes 6
Get-Printer-Attributes ipp://some_user:password@serverip:port/printers/myprinter
cupsdIsAuthorized: username=""
[Client 6] Returning HTTP not authorized for Get-Printer-Attributes (ipp://some_user:password@serverip:port/printers/myprinter
[Client 6] cupsdSendHeader: code=426, type="text/html", auth_type=1
[Client 6] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
[Client 6] Closing connection.
cupsdSetBusyState: newbusy="Not busy", busy="Active clients"

ブラウザからURLにアクセスすると、「ユーザー名でログインしようとしていますが、このページには認証は必要ありません」という警告が表示されます。続行すると、約1秒後にリロードされるリダイレクトページに移動し、資格情報を入力するように求められます。おそらく、基本認証プロンプトの前のhtml応答がWindowsの競合の原因である可能性があります。

基本認証を使用して通常のWebサーバーにURLを追加する場合

この場合、Windows(およびブラウザ)はすぐにパスワードの入力を求められます。

答え1

http接続の問題が修正されました。 httpsは不明です。自己署名証明書とIPアドレスの組み合わせによって問題が発生すると思います。信頼できるルート証明書に追加することは可能かもしれませんが、Windowsはそれに満足していないようです。信じられれば文書(おそらく時代遅れかもしれません)それはまだInternet Explorerに頼っています。だからここで開いているのにエラーがなければ、プリンタも接続されているはずです。

デフォルトでは、およびRequire [user or group]を使用すると、AuthType BasicCUPSは資格情報を求めるメッセージをただちに表示しますが、CUPSは接続をhttpsにアップグレードしようとするため、それだけでは不十分です(メッセージを表示するのではなくhtmlページを返します)。

一般セクションを追加すると、DefaultEncryption IfRequestedこの動作が防止され、Windowsはプロンプトを選択します。

関連情報