다음을 통해 공유


애플리케이션 프록시를 사용하는 앱에 대한 SSO(Single Sign-On)의 Kerberos 제한 위임

Windows 통합 인증으로 보호되는 애플리케이션 프록시를 통해 게시된 온-프레미스 애플리케이션에 대한 Single Sign-On을 제공할 수 있습니다. 이러한 애플리케이션은 액세스를 위해 Kerberos 티켓이 필요합니다. 애플리케이션 프록시는 KCD(Kerberos 제한 위임)을 사용하여 이러한 애플리케이션을 지원합니다.

SSO(Single Sign-On)에 대한 자세한 내용은 Single Sign-On이란?을 참조하세요.

Active Directory에서 개인 네트워크 커넥터에 사용자를 가장할 수 있는 권한을 부여하면 IWA(Windows 통합 인증)를 사용하여 애플리케이션에 Single Sign-On을 사용하도록 설정할 수 있습니다. 커넥터는 이 사용 권한을 사용하여 사용자 대신 토큰을 주고받습니다.

KCD를 사용하는 Single Sign-On 작동 방식

다이어그램은 사용자가 IWA를 사용하는 온-프레미스 애플리케이션에 액세스하려고 할 때의 흐름을 설명합니다.

Microsoft Entra 인증 흐름 다이어그램

  1. 사용자가 URL을 입력하여 애플리케이션 프록시를 통해 온-프레미스 애플리케이션에 액세스합니다.
  2. 애플리케이션 프록시는 사전 인증을 위해 Microsoft Entra 인증 서비스에 요청을 리디렉션합니다. 이 시점에서 Microsoft Entra ID는 다단계 인증 등, 모든 적용 가능한 인증 및 권한 부여 정책을 적용합니다. 사용자가 확인되면 Microsoft Entra ID에서 토큰을 만들어서 사용자에게 보냅니다.
  3. 사용자는 토큰을 애플리케이션 프록시로 전달합니다.
  4. 애플리케이션 프록시가 토큰의 유효성을 검사하고 해당 토큰에서 UPN(사용자 계정 이름)을 검색하면, 커넥터는 이중 인증된 보안 채널을 통해 UPN 및 SPN(서비스 주체 이름)을 끌어옵니다.
  5. 커넥터는 온-프레미스 AD와 Kerberos 제한 위임(KCD) 협상을 수행하여 사용자를 가장하고 Kerberos 토큰을 애플리케이션에 가져옵니다.
  6. Active Directory는 애플리케이션에 대한 Kerberos 토큰을 커넥터로 보냅니다.
  7. 그러면 커넥터에서 AD에서 받은 Kerberos 토큰을 사용하여 원래 요청을 애플리케이션 서버에 보냅니다.
  8. 애플리케이션은 응답을 커넥터로 보냅니다. 그러면 응답이 애플리케이션 프록시 서비스를 거쳐 마지막으로 사용자에게 반환됩니다.

필수 조건

IWA 애플리케이션에 대한 Single Sign-On을 시작하기 전에 사용자 환경이 다음 설정 및 구성을 갖추고 준비되었는지 확인합니다.

  • SharePoint 웹앱과 같은 앱이 Windows 통합 인증을 사용하도록 설정됩니다. 자세한 내용은 Kerberos 인증 지원 사용 또는 SharePoint의 경우 SharePoint 2013에서 Kerberos 인증 계획(영문)을 참조하세요.
  • 모든 앱에는 서비스 주체 이름이 있습니다.
  • 커넥터를 실행하는 서버 및 앱을 실행하는 서버가 도메인 가입 상태이고 동일한 도메인 또는 신뢰하는 도메인의 일부입니다. 도메인 연결에 대한 자세한 내용은 도메인에 컴퓨터 연결하기를 참조하세요.
  • 커넥터 서버가 사용자의 TokenGroupsGlobalAndUniversal 속성을 읽을 수 있는지 확인합니다. 보안 강화는 이 액세스를 제한할 수 있습니다. 커넥터 서버를 Windows 권한 부여 액세스 그룹에 추가하여 사용하도록 설정합니다.

Active Directory 구성

Active Directory 구성은 개인 네트워크 커넥터와 애플리케이션 서버가 동일한 도메인에 있는지 여부에 따라 다릅니다.

동일한 도메인 내의 커넥터와 애플리케이션 서버

  1. Active Directory에서 도구>사용자 및 컴퓨터로 이동합니다.

  2. 커넥터를 실행하는 서버를 선택합니다.

  3. 마우스 오른쪽 단추를 클릭하고 속성>위임을 선택합니다.

  4. 지정한 서비스에만 위임하도록 이 컴퓨터를 신뢰를 선택합니다.

  5. 모든 인증 프로토콜 사용을 선택합니다.

  6. 이 계정으로 위임된 자격 증명을 사용할 수 있는 서비스 아래에서 해당 애플리케이션 서버의 SPN ID 값을 추가합니다. 이 설정을 사용하면 프라이빗 네트워크 커넥터가 목록에 정의된 애플리케이션에 대해 AD의 사용자를 가장할 수 있습니다.

    커넥터 SVR 속성 창 스크린샷

다른 도메인 내의 커넥터와 애플리케이션 서버

  1. 도메인에 걸쳐 KCD로 작업하기 위한 필수 구성 요소 목록은 도메인 간의 Kerberos 제한 위임을 참조하세요.

  2. 애플리케이션 프록시(커넥터)에서 Kerberos 인증 위임을 사용하도록 설정하려면 웹 애플리케이션의 서비스 계정(PrincipalsAllowedToDelegateTo)의 속성을 사용합니다webserviceaccount. 애플리케이션 서버는 아래에서 webserviceaccount실행되고 위임 서버는 .입니다 connectorcomputeraccount. 도메인 컨트롤러(Windows Server 2012 R2 이상)에서 동일한 도메인 webserviceaccount에서 다음 명령을 실행합니다. 두 계정에 대해 플랫 이름(비 UPN)을 사용합니다.

    webserviceaccount 계정이 컴퓨터 계정인 경우 다음 명령을 사용합니다.

    $connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com
    
    Set-ADComputer -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector
    
    Get-ADComputer webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
    

    webserviceaccount 계정이 사용자 계정인 경우 다음 명령을 사용합니다.

    $connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com
    
    Set-ADUser -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector
    
    Get-ADUser webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
    

단일 사인온 구성

  1. 애플리케이션 프록시로 애플리케이션 게시에 설명된 지침에 따라 애플리케이션을 게시합니다. Microsoft Entra ID사전 인증 방법으로 선택해야 합니다.

  2. 엔터프라이즈 애플리케이션 목록에 애플리케이션이 표시되면 애플리케이션을 선택하고 Single Sign-On을 선택합니다.

  3. Single Sign-On 모드를 Windows 통합 인증으로 설정합니다.

  4. 애플리케이션 서버의 내부 애플리케이션 SPN을 입력합니다. 이 예제에서는 게시된 애플리케이션에 대한 SPN이 http/www.contoso.com입니다. SPN은 커넥터가 위임된 자격 증명을 표시할 수 있는 서비스 목록에 있어야 합니다.

  5. 커넥터에 대한 위임된 로그인 ID를 선택하여 사용자들을 대신하여 사용합니다. 자세한 내용은 다른 온-프레미스 및 클라우드 ID로 작업을 참조하세요.

    고급 애플리케이션 구성

비 Windows 앱에 대한 SSO

Microsoft Entra 애플리케이션 프록시의 Kerberos 위임 흐름은 Microsoft Entra가 클라우드에서 사용자를 인증할 때 시작됩니다. 요청이 온-프레미스에 도착하면 Microsoft Entra 개인 네트워크 커넥터는 로컬 Active Directory와 상호 작용하여 사용자를 대신하여 Kerberos 티켓을 발급합니다. 이 프로세스를 KCD(Kerberos 제한 위임)라고 합니다.

다음 단계에서 요청은 백 엔드 애플리케이션에 Kerberos 티켓으로 전송됩니다.

이러한 요청에서 Kerberos 티켓을 보내는 방법을 정의하는 몇 가지 메커니즘이 있습니다. 대부분의 비 Windows 서버는 SPNEGO 토큰의 형태로 수신하고자 합니다. 이 메커니즘은 Microsoft Entra 애플리케이션 프록시에서 지원되지만 기본적으로 사용하지 않도록 설정됩니다. SPNEGO 또는 표준 Kerberos 토큰에 대해 커넥터를 구성할 수 있지만 둘 다 구성할 수는 없습니다.

SPNEGO에 대한 커넥터 컴퓨터를 구성하는 경우 해당 커넥터 그룹의 다른 모든 커넥터가 SPNEGO를 사용하여 구성되는지 확인합니다. 표준 Kerberos 토큰을 예상하는 애플리케이션은 SPNEGO용으로 구성되지 않은 다른 커넥터를 통해 라우팅되어야 합니다. 일부 웹 애플리케이션은 어떠한 구성 변경도 요구하지 않고 두 형식을 모두 허용합니다.

SPNEGO를 사용하도록 설정하려면

  1. 관리자 권한으로 실행되는 명령 프롬프트를 엽니다.

  2. SPNEGO가 필요한 커넥터 서버에서 다음 명령을 실행합니다.

    REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft Entra private network connector" /v UseSpnegoAuthentication /t REG_DWORD /d 1
    net stop WAPCSvc & net start WAPCSvc
    

비 Windows 앱은 일반적으로 도메인 이메일 주소 대신 사용자 이름 또는 SAM 계정 이름을 사용합니다. 이러한 상황이 애플리케이션에 적용되는 경우 클라우드 ID를 애플리케이션 ID에 연결하도록 위임된 로그인 ID 필드를 구성해야 합니다.

다른 온-프레미스 및 클라우드 ID로 작업

애플리케이션 프록시는 사용자가 클라우드 및 온-프레미스에서 동일한 ID를 가지고 있다고 가정합니다. 그러나 일부 조직에서는 회사 정책 또는 애플리케이션 요구 사항으로 인해 로그인에 대체 ID를 사용해야 합니다. 각 애플리케이션에 대해 위임된 로그인 ID 를 구성하여 Single Sign-On에 대해 KCD를 계속 사용하도록 설정할 수 있습니다. 이 설정은 Single Sign-On에 사용할 ID를 지정합니다.

이 기능을 사용하면 조직에서 사용자가 다른 사용자 이름과 암호를 관리할 필요 없이 클라우드에서 온-프레미스 앱으로 SSO를 사용하도록 설정할 수 있습니다. 일반적인 시나리오는 다음과 같습니다.

  • 단일 클라우드 도메인(예: )과 함께 여러 내부 도메인(예joe@us.contoso.comjoe@eu.contoso.comjoe@contoso.com: )을 사용합니다.
  • 클라우드에서 유효한 도메인 이름을 사용하는 동안 라우팅할 수 없는 내부 도메인 이름(예: joe@contoso.usa)을 사용하는 경우.
  • 내부 도메인 이름 없이 작동합니다(예: joe).
  • 온-프레미스 및 클라우드(예 joe-johns@contoso.com : 대 joej@contoso.com) 사용자에 대해 서로 다른 별칭을 할당합니다.

애플리케이션 프록시를 사용하면 Kerberos 티켓을 가져오는 데 사용되는 ID를 선택할 수 있습니다. 이 설정은 애플리케이션별로 구성되며, nonemail 형식 또는 대체 로그인 메서드가 필요한 시스템을 지원합니다.

위임된 로그인 ID 매개 변수 스크린샷

위임된 로그인 ID를 사용하는 경우 조직의 모든 도메인 또는 포리스트에서 값이 고유하지 않을 수 있습니다. 다른 두 가지 커넥터 그룹을 사용하여 이러한 애플리케이션을 두 번 게시함으로써 이 문제를 방지할 수 있습니다. 각 애플리케이션에는 다른 사용자 대상 그룹이 있으므로 다른 도메인에 해당 커넥터를 조인할 수 있습니다.

로그인 ID에 온-프레미스 SAM 계정 이름을 사용하는 경우 커넥터를 호스팅하는 컴퓨터를 사용자 계정이 있는 도메인에 추가해야 합니다.

다른 ID에 대한 SSO 구성

  1. 주 ID가 이메일 주소가 되도록 Microsoft Entra Connect 설정을 구성합니다(mail). 구성은 동기화 설정에서 사용자 계정 이름 필드를 변경하여 사용자 지정 프로세스의 일부로 수행됩니다. 또한 이러한 설정은 사용자가 Microsoft 365, Windows 컴퓨터 및 Microsoft Entra ID를 ID 저장소로 사용하는 기타 애플리케이션에 로그인하는 방법을 결정합니다.
    사용자 식별 스크린샷 - 사용자 계정 이름 드롭다운

  2. 수정하려는 애플리케이션에 대한 애플리케이션 구성 설정에서 사용할 위임된 로그인 ID를 선택합니다.

    • 사용자 계정 이름(예: joe@contoso.com)
    • 대체 사용자 계정 이름(예: joed@contoso.local)
    • 사용자 계정 이름의 사용자 이름 일부(예: joe)
    • 대체 사용자 계정 이름의 사용자 이름 일부(예: joed)
    • 온-프레미스 SAM 계정 이름(도메인 컨트롤러 구성에 따라 지정)

다른 ID에 대한 SSO 문제 해결

백 엔드 애플리케이션이 예기치 않은 HTTP 회신으로 응답하는 경우 커넥터 머신의 애플리케이션 프록시 세션 이벤트 로그인에서 이벤트 24029를 확인하여 문제 해결을 시작합니다. 이벤트 세부 정보의 "사용자" 필드에는 위임에 사용되는 ID가 표시됩니다. 세션 로그를 사용하도록 설정하려면 이벤트 뷰어로 이동하여 보기 메뉴를 열고 분석 및 디버그 로그 표시를 선택합니다.

다음 단계