홈으로 돌아가기

Linux 웹 서버에서 1C 인증을 위한 SPN

이 기사는 Linux 웹 서버와 Windows 애플리케이션 서버에서의 1C 인증 문제를 설명합니다. 핵심은 서비스 계정에 SPN 레코드를 추가하는 것입니다. setspn, krb5 및 mod_auth_kerb 설정이 제공됩니다.

1C 인증 수정: Linux+Windows의 SPN
Advertisement 728x90

1C: Linux 웹 서버와 Windows 애플리케이션 서버에서 Kerberos 인증 설정하기

Linux 웹 서버에 1C 데이터베이스를 게시하고 Windows 애플리케이션 서버를 사용할 때, 표준 인증 설정 가이드로는 부족한 경우가 많습니다. 애플리케이션 서버의 기술 로그에 웹 서버에서 전달된 사용자 계정이 표시되더라도, 플랫폼은 여전히 로그인 자격 증명을 요구할 수 있습니다. 근본 원인은 1C 애플리케이션 서버를 실행하는 서비스 계정에 대한 SPN 레코드가 없기 때문입니다.

이 세부 사항은 Infostart의 인기 글을 포함한 대부분의 튜토리얼에서 누락되어 있습니다. 해결책은 Linux와 Windows에서 Kerberos 인증을 실험적으로 연구하여 발견되었습니다.

인프라 요구 사항

이 시나리오는 다음을 가정합니다:

Google AdInline article slot
  • NTLM/Kerberos 모듈이 있는 Linux 기반 웹 서버(Apache/Nginx).
  • Windows Server 기반 1C 애플리케이션 서버.
  • 계정 관리를 위한 Active Directory(AD).
  • 요청을 처리하기 위한 1C 서버의 IIS 또는 유사 서비스.

사전 설정에는 웹 서버를 통해 데이터베이스 게시, 인증 헤더 전달을 위한 mod_auth_kerb(Apache용) 또는 Lua 스크립트가 있는 nginx 구성이 포함됩니다. 1C 로그는 전송된 계정을 보여주지만 인증이 실패합니다.

문제 해결

애플리케이션 서버의 기술 로그를 확인하세요(시작 매개변수: -reg 또는 클러터 콘솔 통해). 다음과 같은 항목을 찾으세요:

{User: domain\username} from web-server

계정이 보이지만 자격 증명 프롬프트가 계속되면 SPN에 문제가 있습니다.

Google AdInline article slot

진단 단계:

  • 1C 서비스 계정(예: svc_1c)에 대해 setspn -Q /를 실행합니다.
  • 출력에서 SPN이 없는지 확인합니다.
  • NTLM을 지원하는 브라우저(인트라넷 영역의 IE/Edge)를 통해 액세스를 테스트합니다.
  • 웹 서버 로그를 확인합니다: grep -i kerberos /var/log/apache2/error.log.

해결책: SPN 레코드 추가

애플리케이션 서버를 실행하는 서비스 계정에 대한 SPN 레코드를 생성하세요. SPN 값은 임의적입니다—트래픽에서 사용되지 않지만 1C의 내부 인증 로직에 필요합니다.

DC 또는 RSAT가 있는 시스템에서 명령:

Google AdInline article slot
setspn -S HTTP/fakespn.svc_1c.domain.local svc_1c

여기서:

  • HTTP/fakespn.svc_1c.domain.local은 가상의 SPN입니다.
  • svc_1c는 1C 서비스 계정입니다.

확인: setspn -L svc_1c. 추가 후, 애플리케이션 서버를 재시작하고 액세스를 테스트하세요.

자격 증명 프롬프트 없이 인증이 작동합니다. 이유: 1C 플랫폼은 Kerberos/NTLM 토큰을 수락하기 전에 SPN을 확인합니다.

추가 Kerberos 설정

  • Linux의 Keytab: 서비스 주체 HTTP/webserver.domain.local에 대한 키를 추가하려면 ktutil을 사용하세요.
  • krb5.conf: /etc/krb5.conf에서 영역과 KDC를 지정하세요.
[realms]
DOMAIN.LOCAL = {
kdc = dc.domain.local
}
  • Apache 구성(mod_auth_kerb):
<Location /1c>
AuthType Kerberos
AuthName "Kerberos Login"
KrblAuthRealms DOMAIN.LOCAL
KrbMethodNegotiate On
KrbsaveCredentials Off
</Location>

핵심 포인트

  • SPN은 필수: 가짜 SPN이라도 1C 인증을 해제합니다.
  • 디버깅을 위한 로그: 1C 기술 로그와 웹 서버 error.log를 사용하세요.
  • 서비스 계정: 적절한 권한이 있는 도메인 계정으로 1C 서버를 실행하세요.
  • 테스트: Linux에서 kinit을 사용하여 Kerberos를 확인하세요.
  • 보안: SPN을 필요한 서비스로만 제한하세요.

— Editorial Team

Advertisement 728x90

다음 읽기