검색 결과 :

×


"응답해주셔서 감사합니다. 곧 연락드리겠습니다."

"문제가 발생했습니다. 문의사항을 다시 제출해 주세요."

살펴보기


Kerberos 프로토콜:

케르베로스는 암호화 기반 인증 프로토콜 애플리케이션에 대한 액세스를 보호합니다. 이 프로토콜은 안전하지 않은 네트워크를 통해 보안 인증을 제공하도록 설계되었습니다. Kerberos의 핵심 아이디어는 암호가 인터넷을 통해 전송되는 것을 방지하면서 사용자를 인증하는 것입니다.


미니오렌지 아이콘

Kerberos/NTLM 싱글 사인온(SSO)

작성자: miniOrange

자세히 보기

Kerberos 용어:

케르베로스: Kerberos는 SSO(Single Sign-On) 개념을 지원하는 인증 프로토콜입니다. HTTP의 경우 Kerberos에 대한 지원은 일반적으로 "SPNEGO" 인증 메커니즘이라는 용어를 사용하여 제공됩니다.

Kerberos 영역: 인증을 위한 관리 도메인은 영역이라는 용어로 표시됩니다. 그 목표는 인증 서버가 사용자, 호스트 또는 서비스를 인증할 수 있는 시기에 대한 제한을 정의하는 것입니다. 이는 인증이 발생하기 위해 사용자와 서비스가 동일한 영역의 구성원이어야 함을 의미하지는 않습니다. 두 개체가 서로 다른 영역에 속함에도 불구하고 신뢰 연결을 통해 연결되어 있으면 인증이 계속 발생할 수 있습니다.

교장: Kerberos 시스템에서 Kerberos 주체는 Kerberos가 Kerberos 인식 서비스에 액세스하기 위해 티켓을 발급할 수 있는 고유한 ID를 나타냅니다. "/" 구분 기호는 주체 이름을 구성하는 다양한 구성 요소를 구분하는 데 사용됩니다. "@" 문자를 사용하면 영역을 이름의 최종 요소로 식별할 수 있습니다. 영역을 지정하지 않으면 주체가 krb5.conf 파일에 설정된 기본 영역에 속하는 것으로 추정됩니다.

클라이언트/사용자: 사용자를 대신하여 서비스에 액세스하는 프로세스입니다. 한 영역 내에 여러 클라이언트나 사용자가 있을 수 있습니다.

서비스 : 사용자가 액세스하려는 항목입니다.

SSO: Single Sign-On은 사용자가 한번의 로그인으로 사용자 인증을 완료한 후 다양한 서비스를 이용할 수 있도록 하는 절차입니다. 기본 서비스에 로그인한 후에는 사용자가 권한을 부여한 모든 서비스에 대한 인증이 필요합니다. SSO에는 여러 가지 장점이 있으며, 그 중 하나는 비밀번호나 기타 인증 시스템을 사용하여 신원을 반복적으로 확인하는 번거로운 프로세스를 피할 수 있다는 것입니다.

GSSAPI: 프로그램은 API(응용 프로그래밍 인터페이스)인 GSSAPI(일반 보안 서비스 응용 프로그램 인터페이스)를 통해 보안 서비스에 액세스할 수 있습니다. IETF 표준은 GSSAPI입니다. 자체적으로는 어떠한 보안도 제공하지 않습니다. 대신 보안 서비스 공급자가 GSSAPI 구현을 제공합니다. 상위 레벨 애플리케이션의 구현 세부사항을 숨기는 불투명 메시지(토큰) 교환은 GSSAPI 애플리케이션의 독특한 특징입니다.

SPNEGO: 클라이언트-서버 소프트웨어는 흔히 "spen-go"라고 불리는 Simple and Protected GSSAPI 협상 메커니즘을 사용하여 보안 기술 선택을 협상합니다. 클라이언트 애플리케이션이 원격 서버에 로그인해야 하지만 양쪽 모두 다른 쪽이 어떤 인증 프로토콜을 지원하는지 확신할 수 없는 경우 SPNEGO가 사용됩니다. 의사 메커니즘은 프로토콜을 사용하여 사용 가능한 공통 GSSAPI 메커니즘을 식별하고 그 중 하나를 선택한 다음 선택한 메커니즘에 모든 후속 보안 작업을 할당합니다.

KDC: 키 배포 센터는 티켓과 임시 세션 키를 제공하는 네트워크 서비스입니다. 또는 해당 서비스의 인스턴스나 서비스가 실행되는 호스트. KDC는 초기 티켓 요청과 티켓 부여 요청을 모두 서비스합니다. 초기 티켓 부분을 인증 서버(또는 서비스)라고도 합니다. 티켓 부여 티켓 부분은 티켓 부여 서버(또는 서비스)라고도 합니다.


NTLM 인증 프로토콜

Active Directory 도메인의 리소스에 대한 클라이언트의 액세스는 Windows NT LAN Manager(NTLM)라는 시도-응답 인증 프로토콜을 사용하여 인증될 수 있습니다. 클라이언트가 도메인 관련 서비스에 대한 액세스를 요청하면 서비스는 클라이언트에게 인증 토큰을 사용하여 수학 연산을 수행하고 그 결과를 서비스에 제공하도록 지시하는 챌린지를 보냅니다. 결과는 서비스에서 확인하거나 DC(도메인 컨트롤러)에서 확인할 수 있습니다. DC 또는 서비스에서 클라이언트의 응답이 정확하다는 것을 확인한 경우 서비스는 클라이언트에 대한 액세스 권한을 부여합니다.
NTLM은 로그인 중에 사용자가 기본 인증 요소를 한 번만 입력할 수 있도록 하기 때문에 일종의 SSO(Single Sign-On)입니다.


NTLM 인증 프로토콜 SSO(Single Sign-On) 흐름
  • XNUMXD덴탈의 NEGOTIATE_MESSAGE 클라이언트에서 서버로 전송되는 NTLM 협상 메시지를 정의합니다. 이 메시지를 통해 클라이언트는 지원되는 NTLM 옵션을 서버에 지정할 수 있습니다.
  • XNUMXD덴탈의 CHALLENGE_MESSAGE 서버에서 클라이언트로 전송되는 NTLM 챌린지 메시지를 정의하며 서버에서 클라이언트의 신원을 증명하기 위해 챌린지하는 데 사용됩니다.
  • XNUMXD덴탈의 AUTHENTICATE_MESSAGE CHALLENGE_MESSAGE가 클라이언트에 의해 처리된 후 클라이언트에서 서버로 전송되는 NTLM 인증 메시지를 정의합니다.

Windows 인증은 클라이언트 및 서버 구성에 따라 Kerberos 인증 프로토콜 또는 NTLM 인증 프로토콜을 사용합니다.

Kerberos 인증 프로토콜


Kerberos라는 컴퓨터 네트워크 보안 프로토콜은 인터넷과 같은 신뢰할 수 없는 네트워크를 통해 둘 이상의 신뢰할 수 있는 호스트 간의 서비스 요청을 인증합니다.
  • 메시지 A: 클라이언트/사용자의 비밀 키를 사용하여 암호화된 클라이언트/TGS 세션 키입니다.
  • 메시지 B: TGS의 비밀 키를 사용하여 암호화된 티켓 부여 티켓입니다.
  • 메시지 C: 메시지 B의 TGT와 요청된 서비스의 ID로 구성됩니다.
  • 메시지 D: 클라이언트/TGS 세션 키를 사용하여 암호화된 인증자입니다.
  • 메시지 E: 서비스의 비밀 키를 사용하여 암호화된 클라이언트-서버 티켓입니다.
  • 메시지 F: 클라이언트/TGS 세션 키로 암호화된 클라이언트/서버 세션 키.
  • 메시지 G: 클라이언트 ID, 타임스탬프를 포함하고 클라이언트/서버 세션 키를 사용하여 암호화되는 새로운 인증자입니다.
  • 메시지 H: 클라이언트/서버 세션 키를 사용하여 암호화된 클라이언트 인증기에서 발견된 타임스탬프입니다.

Ubuntu/Debian의 Kerberos SSO


전제 조건 :

  1. Active Directory의 서비스 계정/사용자 계정.
  2. 계정 비밀번호에는 비밀번호가 다음으로 설정되어 있어야 합니다. 만료되지 않았습니다.

미니오렌지 아이콘

Kerberos/NTLM 싱글 사인온(SSO)

작성자: miniOrange

자세히 보기

1단계: AD 도메인 컨트롤러에 Keytab 파일을 생성합니다.

  • AD 도메인 컨트롤러에서 관리자 모드로 명령 프롬프트를 열고 다음 명령을 실행하여 Keytab 파일을 생성합니다.
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
    -pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab

    참고 : 확인 EXAMPLE.COM 대문자여야 합니다. SPN이 있는 사용자가 이미 존재하는 경우 새 사용자를 만드는 대신 해당 사용자를 사용하십시오. Kerberos 원칙은 대소문자를 구분합니다. keytab 명령을 실행하기 전에 대문자/소문자 쓰기의 차이를 확인하십시오.

  • 다음은 명령의 구성 요소입니다.
  • 서버 호스트 이름: 서버에서 호스팅되는 사이트의 호스트 이름입니다.
    EXAMPLE.COM: Active Directory 도메인 이름입니다.
    사용자 이름: Active Directory의 서비스 계정입니다.
    암호: 위에서 사용한 서비스 계정의 비밀번호입니다.
    통로: keytab 파일을 저장할 로컬 위치의 경로입니다. (C:\Temp\spn.keytab)

참고 : 위 명령은 keytab 파일을 생성합니다. WordPress 사이트가 호스팅되는 클라이언트 서버에 배치되어야 합니다. Apache를 실행하는 사용자는 이 파일에 대한 전체 액세스 권한을 가져야 합니다. 사용자에게 keytab 파일에 대한 권한이 있어야 합니다.


  • Active Directory 사용자 및 컴퓨터를 열고 상단 메뉴에서 보기 >> 고급 기능을 선택합니다.
  • 서비스 계정을 열고 속성 편집기 탭으로 이동한 후 servicePrincipalName을 찾아 SPN 항목을 확인하세요.
  • 위임 탭으로 이동합니다.
  • 모든 서비스에 대한 위임을 위해 이 사용자 신뢰(Kerberos만)를 선택합니다.
  • Windows Active Directory에 대한 Kerberos 서비스 SSO 위임
  • 적용을 클릭하십시오.

  • 복사 키탭 AD 도메인 컨트롤러에서 Apache에서 호스팅되는 웹 서버로 파일을 전송합니다.
  • Kerberos Keytab 파일에 권한을 제공합니다.
  • chmod 644 etc/apache2/spn.keytab

2단계: 웹 서버에 Kerberos 클라이언트 라이브러리를 설치합니다.

  • Kerberos 클라이언트 라이브러리를 설치하려면 터미널에서 다음 명령을 사용하십시오.
  • sudo apt-get install krb5-user

3단계: Apache용 모듈을 설치합니다.

참고 : Ubuntu/Debian의 최신 릴리스에서는 mod_auth_kerb 더 이상 사용되지 않으며 다음으로 대체되었습니다. mod_auth_gssapi.

1: Apache용 mod_auth_kerb 모듈을 설치합니다.
  • Debian 기반 시스템에 Apache용 auth_kerb 모듈을 설치하려면 다음 명령을 사용하십시오.
  • sudo apt-get install libapache2-mod-auth-kerb
  • auth_kerb 모듈이 설치되면 다음 명령을 통해 활성화해야 합니다.
  • a2enmod auth_kerb
  • 활성화한 후 Apache를 다시 시작하면 적용됩니다.

Or


2: Apache용 mod-auth-gssapi 모듈을 설치합니다.
  • 다음 명령을 사용하여 debian 기반 시스템에 Apache용 libapache2-mod-auth-gssapi 모듈을 설치합니다.
  • sudo apt-get -y install libapache2-mod-auth-gssapi

4단계: Kerberos 구성 파일에서 Active Directory 도메인을 구성합니다.

  • 열기 및 편집 krb5.conf 파일.
    krb5.conf 파일의 경로 리눅스는 C:/etc/krb5.conf입니다. 그리고 다른 UNIX 기반 시스템은 c:/etc/krb5/krb5.conf입니다.
  • 다음 구성 조각을 krb5.conf 언급된 섹션 아래의 파일:
  • [libdefaults]
    default_realm = EXAMPLE.COM
    # ...
    # ...
    [realms]
    EXAMPLE.COM = {
    kdc = <DNS entries pointing to your primary domain controller>: Port
    admin_server = <DNS entries pointing to your primary domain controller>: Port
    }
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    참고 : 교체 광고 도메인 컨트롤러 IP/DNS 귀하의 IP/DNS 주소로. 보장하다 EXAMPLE.COM 대문자여야 합니다.
    교체 EXAMPLE.COM Active Directory 도메인 이름으로.
    그리고 이 서버에서 AD 도메인 컨트롤러의 포트 88에 액세스할 수 있는지 확인하십시오.

  • 파일을 저장합니다.

5단계: 사이트 디렉터리에 대한 Kerberos SSO 구성

  • 아래에 저장된 가상 호스트 구성 파일을 편집합니다. /etc/apache2/sites-enabled 디렉토리 또는 000-default.conf라는 기본 가상 호스트 파일

  • 참고 : 사용된 Apache 모듈에 따라 디렉터리에 다음 섹션을 추가합니다. 예: "mod_auth_kerb" or "mod_auth_gssapi".

  1. 사이트 디렉토리에 다음 섹션을 추가합니다. mod_auth_kerb.
  2. <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  3. 사이트 디렉토리에 다음 섹션을 추가합니다. mod_auth_gssapi.
  4. <IfModule !mod_auth_gssapi.c>
        LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
    </IfModule>
    <Directory "/placeholder">
        AuthType GSSAPI
        AuthName "Kerberos auth"
        GssapiAllowedMech krb5
        GssapiBasicAuth On
        GssapiCredStore keytab:<PATH TO KEYTAB>
        GssapiLocalName On
        BrowserMatch Windows gssapi-no-negotiate
        Require valid-user
    </Directory>

    참고 : 확인 EXAMPLE.COM 대문자여야 합니다.
    위 구성의 구성 요소는 다음과 같습니다.

    EXAMPLE.COM: 이는 krb5.conf에 구성된 Active Directory 도메인입니다.
    키탭 경로: 이 서버의 키탭에 대한 액세스 가능한 경로입니다. (etc/spn.keytab)
  • 이 구성 후에 변경 사항을 적용하려면 Apache를 다시 시작해야 합니다.

설정 구성이 완료되면, 여기를 클릭하세요 Kerberos SSO용 브라우저를 구성합니다.

Kerberos/NTLM SSO 구성을 테스트하려면, 여기를 클릭하십시오.

오류를 해결하려면 다음을 수행하십시오. 여기를 클릭하십시오.

RHEL/CentOS의 Kerberos SSO

서비스 계정 전제 조건:

  1. 계정 비밀번호에는 비밀번호가 다음으로 설정되어 있어야 합니다. 만료되지 않았습니다.
  2. 위임을 위해 계정을 신뢰해야 합니다.

서비스 계정이 없는 경우 Active Directory 사용자 및 컴퓨터에서 새 사용자 계정(서비스 계정)을 만듭니다. 이 개체에 할당된 SPN 항목(servicePrincipalName 특성은 비어 있어야 함)이 없는지 확인하십시오.


미니오렌지 아이콘

Kerberos/NTLM 싱글 사인온(SSO)

작성자: miniOrange

자세히 보기

1단계: AD 도메인 컨트롤러에 Keytab 파일을 생성합니다.

  • AD 도메인 컨트롤러에서 관리자 모드로 명령 프롬프트를 열고 다음 명령을 실행하여 Keytab 파일을 만듭니다.
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
    -pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab

    알림: 확인 EXAMPLE.COM 대문자여야 합니다. Kerberos 원칙은 대소문자를 구분합니다. keytab 명령을 실행하기 전에 대문자/소문자 쓰기의 차이를 확인하십시오.

  • 다음은 명령의 구성 요소입니다.
서버 호스트 이름: 서버에서 호스팅되는 사이트의 호스트 이름입니다.
EXAMPLE.COM: Active Directory 도메인 이름입니다.
사용자 이름: Active Directory의 서비스 계정입니다.
암호: 위에서 사용한 서비스 계정의 비밀번호입니다.
통로: keytab 파일을 저장할 로컬 위치의 경로입니다. (C:\Temp\spn.keytab)

참고 : 위 명령은 keytab 파일을 생성합니다. WordPress 사이트가 호스팅되는 클라이언트 서버에 배치되어야 합니다. Apache를 실행하는 사용자는 이 파일에 대한 전체 액세스 권한이 있어야 합니다. 사용자는 keytab 파일에 대한 권한이 있어야 합니다.



  • 복사 키탭 AD 도메인 컨트롤러에서 Apache에서 호스팅되는 웹 서버로 파일을 전송합니다.
  • Kerberos Keytab 파일에 권한을 제공합니다.
  • chmod 644 etc/httpd/spn.keytab

2단계: 웹 서버에 Kerberos 클라이언트 라이브러리를 설치합니다.

  • Kerberos 클라이언트 라이브러리를 설치하려면 터미널에서 다음 명령을 사용하십시오.
  • yum install -y krb5-workstation krb5-devel krb5-libs mod_auth_gssapi mod_session

    참고 : CentOS의 최신 릴리스에서는 mod_auth_kerb 더 이상 사용되지 않으며 다음으로 대체되었습니다. mod_auth_gssapi.


3단계: Apache용 모듈을 설치합니다.

    1: Apache용 mod_auth_kerb 모듈을 설치합니다.
  • Red Hat 기반 시스템에 Apache용 auth_kerb 모듈을 설치하려면 다음 명령을 사용하십시오. (RHEL 최신 릴리스의 경우 mod-auth-gssapi 모듈을 사용하십시오)
  • yum install mod_auth_kerb

Or


    2: Apache용 mod-auth-gssapi 모듈을 설치합니다.
  • 다음 명령을 사용하여 debian 기반 시스템에 Apache용 libapache2-mod-auth-gssapi 모듈을 설치합니다.
  • sudo apt-get -y install libapache2-mod-auth-gssapi

4단계: Kerberos 구성 파일에서 Active Directory 도메인을 구성합니다.

  • 열기 및 편집 krb5.conf 파일.
    krb5.conf 파일의 경로 RHEL은 C:/etc/krb5.conf입니다.
  • 다음 구성 조각을 krb5.conf 언급된 섹션 아래의 파일:
  • 로 이동 [libdefaults] 섹션에 다음을 추가합니다.
  • default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
  • 로 이동 [영역] 섹션에 다음을 추가합니다.
  • EXAMPLE.COM = {
    kdc = <DNS entries pointing to your primary domain controller>: Port
    admin_server = <DNS entries pointing to your primary domain controller>: Port
    }
  • 로 이동 [도메인_영역] 섹션에 다음을 추가합니다.
  • .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    참고 : 교체 광고 도메인 컨트롤러 IP/DNS 귀하의 IP/DNS 주소로. 보장하다 EXAMPLE.COM 대문자여야 합니다.
    교체 EXAMPLE.COM Active Directory 도메인 이름으로.
    그리고 이 서버에서 AD 도메인 컨트롤러의 포트 88에 액세스할 수 있는지 확인하십시오.

  • 파일을 저장합니다.

5단계: 사이트 디렉터리에 대한 Kerberos SSO 구성

  • 부과된 호스트 구성 파일을 편집합니다. /etc/httpd/conf/httpd.conf
  • 사이트 디렉토리에 다음 섹션을 추가합니다. mod_auth_kerb.
  • <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  • 사이트 디렉토리에 다음 섹션을 추가합니다. mod_auth_gssapi.
  • LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
    <Directory "/placeholder">
        AuthType GSSAPI
        AuthName "Kerberos auth"
        GssapiBasicAuth On
        GssapiCredStore keytab:<PATH TO KEYTAB>
        GssapiLocalName On
        Require valid-user
    </Directory>

    위 구성의 구성 요소는 다음과 같습니다.

    키탭 경로 이 서버의 키탭에 대한 액세스 가능한 경로입니다. (etc/apache2/spn.keytab)
    "/자리 표시자" 문서 루트 경로
  • 이 구성 후에 변경 사항을 적용하려면 Apache를 다시 시작해야 합니다.

설정 구성이 완료되면, 여기를 클릭하세요 Kerberos SSO용 브라우저를 구성합니다.

Kerberos/NTLM SSO 구성을 테스트하려면, 여기를 클릭하십시오.

오류를 해결하려면 다음을 수행하십시오. 여기를 클릭하십시오.

IIS 서버에서 Windows 인증을 사용한 SSO


  • 관리자 모드에서 명령 프롬프트를 엽니다.
  • 다음 명령을 실행하여 서비스 계정에 대한 SPN(서비스 사용자 이름)을 추가합니다.
  • 참고 : 웹사이트가 http://machinename 및 http://machinename.domain.com에서 응답해야 한다고 가정합니다. 서비스 계정의 SPN 속성에 이러한 주소를 지정해야 합니다.

    Setspn -S http/<computer-name>.<domain-name> <domain-user-account>

    예: C:\Users\Administrator> setspn -S HTTP/machinename.domain.com service_account

    참고 : "machinename.domain.com"은 컴퓨터 이름입니다. AD 서비스를 실행하는 Windows 서버에서 확인할 수 있는지 확인하세요.


  • 다음 명령을 실행하여 이것이 올바르게 설정되었는지 확인하십시오.
  • setspn -l domain or service_account

    예: C:\Users\관리자> setspn -l service_account 또는 C:\Users\Administrator> setspn -l 도메인 이름

    Windows IIS 서버에서 Kerberos SSO 인증을 위한 SPN(서비스 사용자 이름) 항목 설정
  • 결과가 나열되어야 합니다. http/machinename.domain.com

  • Active Directory 사용자 및 컴퓨터를 열고 상단 메뉴에서 다음을 선택합니다. 보기 >> 고급 기능.
  • 서비스 계정을 열고 다음으로 이동하십시오. 속성 편집기 탭에서 servicePrincipalName을 사용하여 SPN 항목을 확인합니다.
  • 로 이동 대표단 탭.
  • 선택 모든 서비스에 대한 위임을 위해 이 사용자를 신뢰합니다(Kerberos만 해당).
  • RHEL, CentOS, Ubuntu, Fedora 시스템용 Kerberos Single Sign-On을 위한 Kerberos 서비스 위임
  • 신청.
  • 열기 IIS 관리자 Windows 인증을 활성화하려는 웹사이트를 클릭하세요.
  • 더블 클릭 인증.
  • Kerberos SSO를 활성화하기 위해 사이트에 대한 Windows 인증 설정을 구성하는 Windows IIS 관리자
  • 인증 섹션에서는 기본적으로 익명 인증만 활성화되어 있음을 볼 수 있습니다. IIS는 항상 익명 인증을 수행하려고 시도하므로 익명 인증을 비활성화하고 Windows 인증을 활성화합니다.
  • 구성된 애플리케이션의 Kerberos SSO에 대해 Windows IIS 관리자에서 Windows 인증을 활성화합니다.
  • Windows 인증을 마우스 오른쪽 버튼으로 클릭하고 공급자를 클릭합니다.
  • 인터넷 정보 서비스 IIS 관리자 Windows 인증 공급자 목록
  • 다음 창이 나타납니다. 공급자 목록의 목록 상단에 "협상"이 있는지 확인하세요.
  • Windows IIS 관리자를 사용하면 Windows 인증 공급자가 Kerberos 프로토콜을 사용하여 Single Sign-On SSO를 수행할 수 있습니다.

    참고 : 기본적으로 Negotiate와 NTLM이라는 두 가지 공급자를 사용할 수 있습니다. Negotiate는 kerberos를 첫 번째 인증 방법으로 사용하는 컨테이너로, 인증에 실패할 경우 NTLM을 사용합니다. 따라서 공급자 목록에서 협상이 첫 번째로 와야 합니다.


  • 를 클릭하십시오 Ok 창을 닫습니다.
  • 생성된 SPN 계정에서 실행되도록 IIS 애플리케이션 풀을 구성하려면 애플리케이션 풀을 클릭하여 애플리케이션 풀 창을 엽니다.
  • 도메인을 마우스 오른쪽 버튼으로 클릭하고 목록에서 고급 설정을 클릭합니다.
  • Kerberos SSO를 활성화하기 위한 Windows 인터넷 정보 서비스(IIS) 관리자 응용 프로그램 풀 사이트 고급 설정
  • 프로세스 모델 아래의 고급 설정 창에서 ID를 클릭합니다.
  • Kerberos SSO를 활성화하려면 Windows IIS 관리자 응용 프로그램 풀 고급 설정에서 ID를 구성하세요.
  • 응용 프로그램 풀 ID에서 사용자 지정 계정을 선택하고 설정 버튼을 클릭하여 ID를 설정합니다.
  • ApplicationPoolIdentity에서 다음으로 변경합니다. \ .
  • 예:domain.com\service_account

    Windows의 Kerberos SSO는 IIS 관리자 응용 프로그램 풀 ID 설정에서 사용자 지정 계정을 구성합니다.
  • 구성 편집기로 이동합니다.
  • 웹사이트에서 Kerberos/NTLM 인증을 활성화하려면 Windows IIS 관리자 구성 편집기로 이동하세요.
  • 드롭다운에서 system.webServer > 보안 > 인증 > windowsAuthentication을 선택합니다.
  • Windows IIS 서버에 대한 Kerberos 인증을 구성하려면 useAppPoolCredentials를 구성하세요.
  • useAppPoolCredentials를 True로 변경합니다. useKernelMode를 False로 설정합니다.
  • 참고 : useAppPoolCredentials를 True로 설정하면 IIS가 도메인 계정을 사용하여 클라이언트의 Kerberos 티켓을 해독할 수 있다는 의미입니다.

  • 대다.
  • IIS 서버를 다시 시작합니다.

  • Fiddler를 사용하여 HTTP 트래픽을 모니터링하면 웹사이트에서 Kerberos 인증이 사용되고 있는지 확인할 수 있습니다.
  • 피들러를 실행하고 원하는 웹사이트로 브라우저를 실행합니다. 창 왼쪽에서 웹사이트 액세스 라인을 찾으세요. 창 오른쪽에서 검사 탭을 선택합니다. "권한 부여 헤더(협상)에 Kerberos 티켓이 포함된 것으로 보입니다."라는 줄에서 IIS 웹 사이트의 인증에 Kerberos가 사용된 것이 분명합니다.

    Kerberos 티켓은 Kerberos SSO 프로세스 중에 인증 헤더에 포함되어 있습니다.

설정 구성이 완료되면, 여기를 클릭하세요 Kerberos SSO용 브라우저를 구성합니다.

Kerberos/NTLM SSO 구성을 테스트하려면, 여기를 클릭하십시오.

오류를 해결하려면 다음을 수행하십시오. 여기를 클릭하십시오.

Windows Xampp 서버에서 Apache를 사용한 SSO


  • 관리자 모드에서 명령 프롬프트를 엽니다.
  • 다음 명령을 실행하여 서비스 계정에 대한 SPN(서비스 사용자 이름)을 추가합니다.
  • Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

    예: C:\Users\Administrator> setspn -S HTTP/machinename.domain.com service_account

    참고: 여기서 "machinename.domain.com"은 컴퓨터 이름입니다. AD 서비스를 실행하는 Windows 서버에서 확인할 수 있는지 확인하세요.

  • 다음 명령을 실행하여 이것이 올바르게 설정되었는지 확인하십시오.
  • setspn -l domain\service_account
  • 결과가 나열되어야 합니다. http/machinename.domain.com
  • Active Directory 사용자 및 컴퓨터를 열고 상단 메뉴에서 다음을 선택합니다. 보기 >> 고급 기능.
  • 서비스 계정을 열고 다음으로 이동하십시오. 속성 편집기 탭에서 servicePrincipalName을 사용하여 SPN 항목을 확인합니다.
  • 로 이동 대표단 탭.
  • 선택 모든 서비스에 대한 위임을 위해 이 사용자를 신뢰합니다(Kerberos만 해당).
  • IIS 서버의 Windows 인증을 위한 Kerberos
  • 신청.

  • Click Here 아파치 모듈을 다운로드합니다.
  • 복사 mod_authnz_sspi.soApache24 > 모듈 폴더로 이동하여 모듈(C:\xampp\apache\modules) 디렉터리에 배치합니다.
  • 복사 sspipkgs.exe 에서 파일 Apache24 -> 빈 폴더를 찾아 웹 서버에 있는 Xampp Apache 폴더(.....\xampp\apache\bin)의 bin 폴더에 넣습니다.
  • httpd.conf(.....\xampp\apache\conf)를 열고 LoadModule 섹션에 아래 코드 줄을 배치합니다.
  • LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
  • 다음 모듈의 주석 처리가 해제되었는지 확인하세요.
  • LoadModule authn_core_module modules/mod_authn_core.so
    LoadModule authz_core_module modules/mod_authz_core.so

  • 또한 LDAP 확장을 활성화해야 합니다.
  • 열기 httpd.conf를 (.....\xampp\apache\conf\httpd.conf)의 파일입니다.
    #Require all grants 뒤에 아래 줄로 이동하여 붙여넣습니다.
  • <Directory "...../xampp/htdocs">
    ......
    ......
    #Require all granted
    AllowOverride None Options None
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    Require valid-user
    </Directory>

  • Apache 서버를 다시 시작하십시오.

설정 구성이 완료되면, 여기를 클릭하세요 Kerberos SSO용 브라우저를 구성합니다.

Kerberos/NTLM SSO 구성을 테스트하려면, 여기를 클릭하십시오.

오류를 해결하려면 다음을 수행하십시오. 여기를 클릭하십시오.

Kerberos SSO용 브라우저 구성


클라이언트 측 구성을 사용하면 해당 브라우저가 SPNEGO를 사용하여 브라우저에 대한 Kerberos 인증을 협상할 수 있습니다. 최종 사용자 시스템의 브라우저가 Kerberos 인증을 지원하도록 구성되어 있는지 확인해야 합니다.


모든 브라우저에 대한 일반 Kerberos SSO 구성


  • 제어판으로 이동하여 다음을 클릭하세요. 네트워크 및 인터넷 >> 인터넷 옵션.
  • 그러면 인터넷 속성 창이 열립니다. 클릭 보안 >> 로컬 인트라넷 >> 사이트.
  • 인터넷 옵션 설정을 사용하여 Kerberos 인증을 위한 브라우저 구성

  • 그 후 고급 버튼.
  • Chrome 및 Internet Explorer의 Kerberos SSO에 대한 인터넷 옵션에서 고급 설정 구성

  • . 이 웹사이트를 영역에 추가하세요 섹션에 SSO로 로그인하려는 웹사이트 URL을 추가하세요.
  • Kerberos SSO에 대한 인터넷 옵션에서 인트라넷 영역의 웹 사이트 구성
  • 도구 > 인터넷 옵션 > 보안 > 로컬 인트라넷 > 사용자 정의 수준.
  • 사용자 인증 옵션까지 아래로 스크롤하여 선택합니다. 인트라넷 영역에서만 자동 로그온됩니다.
  • Kerberos 인증 프로토콜을 사용하여 인트라넷 영역에 자동 로그온
  • 를 클릭하십시오 Ok 버튼을 누른 다음 브라우저를 다시 시작하세요.


위 설정을 완료한 후에는 Internet Explorer, Google Chrome 및 Apple Safari에 대한 브라우저 설정을 구성할 필요가 없습니다.


1. 인터넷 익스플로러
2. 구글 크롬
3. 모질라 파이어 폭스
4. 애플 사파리


인터넷 익스플로러

기본적으로 일반 브라우저 구성 설정이 적용되며 Internet Explorer에는 더 이상 추가 설정이 필요하지 않습니다.



Google Chrome

기본적으로 일반 브라우저 구성 설정이 적용되며 Google Chrome에는 더 이상 추가 설정이 필요하지 않습니다.



모질라 파이어 폭스

  • Mozilla Firefox 브라우저를 열고 다음을 입력하세요. 정보 : 설정 주소 표시 줄에.
  • 에 대한 검색 network.negotiate-auth.trusted-uris 기본 설정 이름을 클릭하고 편집. Kerberos HTTP SPNEGO로 보호되는 웹 서버의 호스트 이름 또는 도메인을 입력하십시오. 여러 도메인과 호스트 이름을 쉼표로 구분하여 지정하세요.
  • Kerberos SSO(Single Sign-On)에 대해 Mozilla Firefox 구성
  • 에 대한 검색 network.automatic-ntlm-auth.trusted-uris 기본 설정 이름을 선택하고 편집을 클릭하세요. Kerberos HTTP SPNEGO로 보호되는 웹 서버의 호스트 이름 또는 도메인을 입력하십시오. 여러 도메인과 호스트 이름을 쉼표로 구분하여 지정하세요.
  • Kerberos 인증을 위한 Mozilla Firefox 설정 구성
  • OK 그런 다음 브라우저를 다시 시작하세요.


애플 사파리

  • Windows의 Safari는 추가 구성 없이 SPNEGO를 지원합니다. SPENGO의 하위 메커니즘으로 Kerberos와 NTLM을 모두 지원합니다.

Kerberos/NTLM SSO 구성 테스트


시간 동기화

Kerberos 프로토콜은 클라이언트와 서버의 시간이 일치해야 합니다. 클라이언트의 시스템 시계가 서버의 시스템 시계와 일치하지 않으면 인증이 실패합니다. 시스템 시계를 동기화하는 가장 간단한 방법은 NTP(Network Time Protocol) 서버를 사용하는 것입니다.


명령으로 확인하십시오.

keytab 및 kerberos 구성을 확인하려면 다음 명령을 실행할 수 있습니다.

  1. 클리스트
  2. klist 명령은 Kerberos 자격 증명 캐시 또는 키 테이블의 내용을 표시합니다. 이 명령을 사용하면 유효한 티켓을 받았는지 여부를 확인할 수 있습니다.

  3. klist -t -k etc/apache2/spn.keytab
  4. etc/apache2/spn.keytab 키 테이블의 모든 항목을 타임스탬프와 함께 나열합니다.

  5. klist -ek /etc/apache2/spn.keytab
  6. 세션 키와 티켓의 암호화 유형을 표시하고 키 테이블의 항목을 나열합니다.

  7. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/webserver.yourdomain.com@YOURDOMAIN.COM
  8. keytab 파일을 사용하여 Kerberos 인증을 확인합니다.

  9. kdestroy -A
  10. Linux에서 이 명령을 사용하여 로컬 시스템의 Kerberos 토큰을 재설정할 수 있습니다. 이 명령은 이전 Kerberos 티켓을 삭제합니다.

  11. klist 퍼지
  12. Windows에서 이 명령을 사용하여 로컬 시스템의 Kerberos 토큰을 재설정할 수 있습니다. 이 명령은 이전 Kerberos 티켓을 삭제합니다.


테스트 구성.

  • SSO 구성을 테스트하려면 WordPress 루트 디렉터리에 test.php 파일을 만듭니다.
    아래 줄을 입력하세요:
  • <?php
    var_dump($_SERVER);
    ?>
  • 파일을 저장하고 웹 브라우저에서 액세스하십시오. 당신은 볼 것이다 $_SERVER 콘텐츠.
  • 에 대한 검색 "REMOTE_USER" 현재 로그인된 사용자 이름이 포함되어 있어야 합니다.
  • 참고 : 구성을 확인한 후 test.php 파일을 제거하십시오. 귀중한 정보가 포함되어 있기 때문입니다.


여러 도메인에 걸친 Kerberos 인증


  • 각 도메인에 별도의 Keytab을 생성하고 ktutil 도구와 병합합니다.
  • ktutil
    ktutil: read_kt <keytab_filename_1>
    ktutil: read_kt <keytab_filename_2>
    ktutil: read_kt <keytab_filename_3>
    ktutil: write_kt spn.keytab
    ktutil: quit

  • 아래 명령으로 병합을 확인합니다.
  • klist -k spn.keytab
  • krb5.conf를 구성합니다.
    krb5.conf 파일에는 하나 이상의 Kerberos 영역에 대한 KDC 및 관리 서버, 현재 영역의 기본값 및 Kerberos 영역에 대한 호스트 이름 매핑을 포함하는 Kerberos 구성 정보가 포함되어 있습니다. 도메인이 여러 개인 경우 인증이 작동하려면 다양한 도메인/도메인 영역에 대한 정보로 krb5.conf 파일을 업데이트해야 합니다.

문제해결


가장 일반적인 오류 메시지는 다음과 같습니다.

    kinit: Pre-authentication failed: Invalid argument while getting initial credentials
  • AD 환경에서 여전히 많이 사용되지만 RHEL-4에서는 이미 기본적으로 비활성화되어 있는 rc8.3 암호화 유형입니다. 아래 예를 참조하여 keytab 파일에 암호화 유형을 추가할 수 있습니다.
  • 예:
    ktutil
    addent -password -p HTTP/<Server Host Name>@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
    wkt spn.keytab.

  • Unspecified GSS failure. Minor code may provide more information (Clock skew too great)
    or
    kinit: krb5_get_init_creds: Too large time skew
  • Kerberos는 시간에 매우 민감합니다. Active Directory 호스트와 웹 서버의 시계가 동일한지 확인하십시오. 클라이언트 컴퓨터의 NTP 서버 역할을 하도록 도메인 컨트롤러 중 하나를 설정합니다.

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied)
  • /etc/apache2/spn.keytab에 대한 파일 시스템 권한이 잘못되었습니다. 즉, 웹 서버의 Linux 사용자가 읽을 수 없습니다.
  • 파일 시스템 권한을 변경하려면 다음을 사용하십시오. chmod 644 /etc/apache2/spn.keytab

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found).
  • /etc/apache2/spn.keytab에 서비스 주체(HTTP/webserver.yourdomain.com@YOURDOMAIN.COM)가 누락되었습니다.

  • Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration. gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
  • 웹 사이트가 IE의 "로컬 인트라넷" 영역에 없거나 IE가 잘못 구성되었습니다. 인증이 Kerberos 대신 NTLM을 사용함을 참조하세요.

  • gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ).
  • etc/apache2/spn.keytab에 kvno 또는 시스템 비밀번호가 잘못되었습니다. 올바른 정보를 사용하여 키탭을 다시 생성하십시오.
  • 워크스테이션의 로컬 Kerberos 티켓 캐시에 문제가 있습니다. Kerbtray.exe를 사용하여 티켓 캐시를 제거하고 IE에서 웹 사이트를 다시 여십시오.

  • kinit: KDC has no support for encryption type while getting initial credentials
  • /etc/apache2/krb5.conf 파일의 libdefaults 섹션에서 기본 암호화 유형을 변경합니다. default_tgs_enctypes 및 default_tkt_enctypes를 구성에 추가합니다.
  • [libdefaults]
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5

    kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIRED
    or
    kinit: Client's entry in database has expired while getting initial credentials
  • 귀하의 Kerberos 계정은 더 이상 활성 상태가 아닙니다. 계정 자격 증명을 갱신해야 합니다.

  • kinit: krb5_cc_get_principal: No credentials cache file found
    or
    kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND
  • kinit 명령을 실행할 때 잘못된 도메인이 대상으로 지정되었습니다. 도메인 이름을 확인하세요. 대문자여야 합니다. EXAMPLE.COM

  • kinit : Cannot find KDC for requested realm while getting initial credentials
  • /etc/apache2/krb5.conf 파일에 Active Directory 도메인 이름(.EXAMPLE.COM)이 포함되어 있지 않습니다.

  • kinit: Preauthentication failed while getting initial credentials
  • kerberos 비밀번호를 실수로 입력하여 발생합니다. 다시 시도해 주세요. 또는 시스템 시계 때문일 수도 있습니다. date 명령이 5분 이내의 정확한 시간을 반환하는지 확인하십시오.

  • kinit: Client not found in Kerberos database while getting initial credentials
  • Kerberos 주체는 로컬 시스템의 사용자 이름과 다를 수 있습니다.

  • kinit: Client's entry in database has expired
  • Kerberos 비밀번호를 변경해야 합니다.

안녕하세요!

도움이 필요하다? 우리는 바로 여기에 있습니다!

SUPPORT
miniOrange 지원팀에 문의하세요
성공

문의 해 주셔서 감사합니다.

24시간 이내에 연락을 받지 못한 경우 언제든지 다음 이메일로 후속 이메일을 보내주세요. info@xecurify.com