4.5. Kerberos를 사용하여 웹 애플리케이션에 SSO 제공
이 시나리오에서는 Kerberos를 JBoss EAP와 함께 사용하여 웹 애플리케이션에 SSO를 제공하는 방법을 보여줍니다. JBoss EAP 인스턴스는 생성되었으며 독립 실행형 서버로 실행되고
있습니다. 두 개의 웹 애플리케이션( sampleAppA
및 sampleAppB
)이 EAP1
에 배포되었습니다. 웹 애플리케이션과 EAP1
은 모두 Kerberos가 있는 데스크탑 기반 SSO를 사용하여 인증하도록 구성되었습니다.
4.5.1. 보안
JBoss EAP는 SPNEGO
인증 방법을 사용하여 Kerberos 인증을 제공합니다. Kerberos 및 SPNEGO의 세부 사항에 대한 자세한 내용은 타사 SSO 구현 섹션을 참조하십시오. JBoss EAP와 배포된 웹 애플리케이션이 인증에 Kerberos를 사용하도록 활성화하기 위해 Kerberos 서버에 연결하기 위해 kerberos-security-factory
가 생성됩니다. Kerberos 서버의 사용자에게 역할을 할당하기 위해 보안 영역, 역할 매퍼 및 보안 도메인도 생성됩니다. kerberos
가 생성됩니다. 인증 메커니즘은 -security-factory를 사용하고 인증 및 역할 할당에 보안 도메인을 사용하는 http-authentication
-factorySPNEGO
인증 메커니즘을 사용하여 exampleSpnegoDomain
으로 노출됩니다. 또한 The undertow
하위 시스템은 인증에 http-authentication-factory
를 사용하도록 구성됩니다.
sampleAppA
및 sampleAppB
는 모두 exampleSpnegoDomain
을 사용하여 인증을 수행하고 권한 부여를 위한 사용자의 역할을 가져오도록 구성됩니다. 두 애플리케이션 모두 보안 토큰을 운영 체제에서 브라우저로 전달할 수 없는 경우 FORM
인증을 대체 인증 메커니즘으로 구성할 수도 있습니다. FORM
인증이 대체로 구성된 경우 지원 보안 도메인과 함께 추가 인증 메커니즘을 구성해야 합니다. 이 인증 메커니즘은 Kerberos 및 SPNEGO
와 독립적이며 FORM
인증을 지원하기만 하면 됩니다. 이 경우 FORM
인증을 위해 추가 메커니즘 및 지원 보안 도메인이 구성되어 exampleFormDomain
으로 노출되었습니다. 각 애플리케이션은 exampleFormDomain
을 사용하고 대체로 FORM
인증을 제공하도록 구성됩니다. 각 애플리케이션은 또한 경로 /secure/*
를 보안하도록 구성되며 권한 부여를 처리하기 위한 고유한 역할 목록을 제공합니다.
4.5.2. 작동 방식
Kerberos 서버에 다음 사용자가 생성되었습니다.
사용자 이름 | 암호 |
---|---|
Sande | samplePass |
Andrea | samplePass |
Betty | samplePass |
Chuck | samplePass |
다음 역할은 보안 도메인을 사용하여 사용자에게 매핑됩니다.
사용자 이름 | 역할 |
---|---|
Sande | 모두 |
Andrea | A |
Betty | B |
Chuck |
다음 역할도 각 애플리케이션에 구성되어 있습니다.
애플리케이션/SP | 허용된 역할 |
---|---|
sampleAppA | 모두, A |
sampleAppB | all, B |
시작 시 EAP1
은 핵심 서비스를 로드한 다음 elytron
및 기타 하위 시스템을 로드합니다. kerberos-security-factory
는 Kerberos 서버에 대한 연결을 설정합니다. sampleAppA
및 sampleAppB
는 모두 배포되며 인증을 위해 exampleSpnegoDomain
및 exampleFormDomain
에 연결합니다.
Sande는 Kerberos로 보호되는 컴퓨터에 로그인했습니다. 브라우저를 열고 sampleAppA/secure/hello.html
에 액세스를 시도합니다. 보안이 필요하므로 인증이 필요합니다. EAP1
은 브라우저에서 키 요청을 Kerberos 서버, 특히 컴퓨터에 구성된 Kerberos 키 배포 센터로 보내도록 지시합니다. 브라우저가 키를 얻은 후 sampleAppA로 전송됩니다.
는 압축 해제되고 sampleAppA
kerberos-security-factory
에서 구성된 Kerberos 서버와 함께 인증이 수행되는 exampleSpnegoDomain
을 JBoss EAP로 보냅니다. 티켓이 인증되면 Sande의 역할은 인증을 수행하기 위해 sampleAppA
로 다시 전달됩니다. Sande는 all
역할이 있으므로 sampleAppA/secure/hello.html
에 액세스할 수 있습니다. Sande가 sampleAppB/secure/hello.html
에 액세스하려고 하면 동일한 프로세스가 수행됩니다. 모든
역할을 갖기 때문에 액세스 권한이 부여됩니다. Andrea와 Betty는 동일한 프로세스를 따르지만 Andrea는 sampleAppA/secure/hello.html
에만 액세스할 수 있고 sampleAppB/secure/hello.html
에는 액세스할 수 없습니다. Betty는 반대로, sampleAppA/secure/hello.html
에 액세스하고 sampleAppA/secure/hello.html
에 액세스할 수 없습니다. Chuck은 sampleAppA/secure/hello.html
또는 sampleAppB/secure/hello.html
에 인증을 전달하지만 역할이 없으므로 액세스 권한이 부여되지 않습니다.
Sande가 Kerberos가 보안하지 않은 컴퓨터에서 sampleAppA/secure/hello.html
에 액세스하려는 경우(예: 사무실 네트워크에 연결된 개인 랩톱) FORM
로그인 페이지로 대체로 이동합니다. 그런 다음 대체 인증 메커니즘을 사용하여 자격 증명이 인증되고 프로세스는 권한 부여를 계속합니다.