인증서버가 클라이언트의 인증을 해준다는 것은 당연한 일이다.

하지만 모든 클라이언트가 인증을 위해 액세스 하는 것을 허용하지는 않는다.

따라서 인증 서버클라이언트/서비스를 등록하고 해당 서비스들만 액세스 할 수 있도록 해야 한다.

 

이 내용은 사실 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 인증서버를 통해 할 수 있도록 작업해 보겠다.

+ Recent posts