현재 구성을 사용하면 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가 웹 인터페이스를 통해 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 충돌의 원인일 수도 있습니다.
기본 인증을 사용하여 일반 웹 서버에 URL을 추가하려는 경우
이 경우 Windows(및 브라우저)는 즉시 비밀번호를 묻는 메시지를 표시합니다.
답변1
http 연결 문제가 해결되었습니다. https가 확실하지 않습니다. 자체 서명된 인증서와 IP 주소의 조합으로 인해 문제가 발생한다고 생각합니다. 신뢰할 수 있는 루트 인증서에 추가하는 것이 가능할 수도 있지만 Windows는 이에 만족하지 않는 것 같습니다. 내가 믿을 수 있다면문서(아마도 구식일 수 있음) 여전히 Internet Explorer에 의존합니다. 그래서 여기서 열렸는데 에러가 없다면 프린터도 연결되어 있어야 합니다.
기본적으로 Require [user or group]
및를 사용하면 AuthType Basic
CUPS에서 자격 증명을 묻는 메시지가 즉시 표시되지만 CUPS가 연결을 https로 업그레이드하려고 시도하기 때문에 그것만으로는 충분하지 않습니다(메시지를 표시하는 대신 html 페이지 반환).
일반 섹션을 추가하면 DefaultEncryption IfRequested
이 동작이 방지되며 Windows에서 프롬프트를 선택합니다.