인증서버가 클라이언트의 인증을 해준다는 것은 당연한 일이다.
하지만 모든 클라이언트가 인증을 위해 액세스 하는 것을 허용하지는 않는다.
따라서 인증 서버는 클라이언트/서비스를 등록하고 해당 서비스들만 액세스 할 수 있도록 해야 한다.
이 내용은 사실 CAS 인증 서버 쪽에서 다뤄야 하지만 흐름상 지금 하는 것이 이해하기 쉽다고 생각했다.
따라서 이 글에서 진행되는 모든 작업은 CAS 인증서버 프로젝트에서 하면 된다.
인증서버에 서비스를 등록하는 방법은 여러가지가 있다.
YAML, JSON, Mongo, LDAP 등이 그것이다.
이 글에서는 JSON 서비스 레지스트리 방법을 사용할 것이다.
의존성은 이미 https://authentication.tistory.com/27?category=795724 글에서 추가를 했다.
Client Application의 정보를 담고 있는 JSON 파일을 작성해보자.
- ${project}/src/main/resources/ 디렉토리 하위에 services 디렉토리를 생성한다.
- casSecuredApp-19991.json 이라는 파일을 services 디렉토리에 생성한다.
그리고 json 파일에 다음의 내용을 추가한다.
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^http://localhost:9000/login/cas",
"name" : "CAS Spring Secured App",
"description": "This is a Spring App that usses the CAS Server for it's authentication",
"id" : 19991,
"evaluationOrder" : 1
}
다음과 같은 구조가 된다.
json 파일 내용을 설명하면 다음과 같다.
serviceId : 인증 서버를 사용하고자 하는 클라이언트에 대한 정규식 URL 패턴을 정의한다. 이 글에서는 localhost:9000 로 된 클라이언트를 추가한다.
id : 실수로 중복해서 서비스가 등록되는 경우 충돌을 방지하기 위해 사용된다. json 파일의 이름은 serviceName-id.json 컨벤션을 따른다.
theme, proxyPolicy, logo, privacyUrl 등등 : https://apereo.github.io/cas/5.1.x/installation/Service-Management.html
다음 설정을 통해 JSON Service Registry를 설정하자.
하나는 서비스 구성 파일이 있는 디렉토리의 위치이다.
다른 하나는 JSON 구성 파일에서 서비스 Registry 초기화를 사용 가능하도록 하는 것이다.
cas.properties 라는 파일을 ${project}/src/main/resources 디렉토리에 생성한다.
그리고 나서 인증서버를 재구동 해보자.
Cas 인증서버에 잘 추가가 되었다.
다음 글에서는 클라이언트 서버에서 인증 처리를 Cas 인증서버를 통해 할 수 있도록 작업해 보겠다.
'개발 > [Spring] 인증' 카테고리의 다른 글
[SSO] CAS 클라이언트 (4) - 샘플 프로젝트 : 두 개의 Client 로그인 테스트 (0) | 2019.06.13 |
---|---|
[SSO] CAS 클라이언트 (3) - 샘플 프로젝트 : CAS 설정 하기 (1) | 2019.06.13 |
[SSO] CAS 클라이언트 (1) - 샘플 프로젝트 : 시작하기 (0) | 2019.06.13 |
[SSO] CAS 인증서버 (5) - JDBC인증 등록과정 (1) | 2019.06.13 |
[SSO] CAS 인증서버 (4) - 샘플 프로젝트 : 사용자 계정 JDBC 인증 (1) | 2019.04.30 |