중앙 인증 서비스
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
중앙 인증 서비스(CAS)는 웹 애플리케이션에서 사용자를 인증하기 위한 프로토콜이다. 예일 대학교에서 개발되었으며, 클라이언트, 애플리케이션, CAS 서버를 포함하는 방식으로 작동한다. 클라이언트가 애플리케이션에 접근하면 CAS 서버로 리디렉션되어 사용자 인증을 수행하고, 성공 시 서비스 티켓을 발급한다. CAS는 프록시 인증을 지원하여 다단계 인증을 가능하게 한다. Apereo CAS 서버가 대표적인 구현체이며, 다양한 프로토콜과 인증 방식을 지원한다.
더 읽어볼만한 페이지
- 접근 제어 소프트웨어 - ReCAPTCHA
reCAPTCHA는 웹사이트에서 봇을 차단하고 사용자가 인간임을 인증하는 CAPTCHA 시스템으로, 초기에는 스캔된 텍스트 디지털화 과정에서 OCR로 인식하기 어려운 단어 식별에 활용되었으나, 이미지 식별, 행동 분석 등 다양한 인증 방식을 도입하며 발전해왔으며, 접근성 및 개인 정보 보호 문제와 사용자들의 무임금 노동 제공과 관련된 비판도 존재한다. - 접근 제어 소프트웨어 - 로컬 보안 인증 하위 시스템 서비스
- 컴퓨터 접근 제어 프로토콜 - RADIUS
RADIUS는 네트워크 접근 관리에 사용되는 AAA 프로토콜로, 클라이언트-서버 모델을 기반으로 사용자 인증 및 권한 부여를 수행하며 다양한 환경에서 활용된다. - 컴퓨터 접근 제어 프로토콜 - OAuth
OAuth는 웹/앱 환경에서 사용자 인증 및 API 접근 권한 위임을 위한 개방형 표준 프로토콜로, 버전 1.0과 2.0을 거쳐 2.1 초안이 진행 중이며, 널리 사용되지만 복잡성과 보안 문제에 대한 논쟁도 있다. - 자바 플랫폼 소프트웨어 - 자바 데스크톱 시스템
- 자바 플랫폼 소프트웨어 - 핫자바
핫자바는 자바 프로그래밍 언어 기반으로 개발된 웹 브라우저이며, 1995년 TED 컨퍼런스에서 처음 시연되고 SunWorld 컨퍼런스에서 공식 발표되었다.
| 중앙 인증 서비스 |
|---|
2. 역사
CAS는 예일 대학교의 숀 바이에른(Shawn Bayern)이 처음 개발하였고, 이후 같은 대학교의 드류 마주렉(Drew Mazurek)이 유지보수를 맡았다. CAS 1.0은 싱글 사인온을 구현하였고, CAS 2.0은 다중 프록시 인증을 도입하였다.
2004년 12월, CAS는 Java in Administration Special Interest Group (JASIG)(Jasig) 프로젝트가 되었고, 2008년부터 유지보수 및 개발을 담당하고 있다. 이전에는 "예일 CAS"로 불렸으나, 현재는 "재식 CAS"로도 알려져 있다. 2010년 재식은 사카이 재단과 합병을 논의하였고, 2012년 12월 Apereo 재단으로 통합되었다.
2006년 12월, 앤드루 W. 멜론 재단(Andrew W. Mellon Foundation)은 CAS 개발 공로로 예일 대학교에 50000USD의 멜론 기술 협력상을 수여했다.[2] 당시 CAS는 "수백 개의 대학 캠퍼스에서 사용되고 있었다."
2013년 4월, CAS 프로토콜 사양 3.0이 출시되었다.[3]
2. 1. 예일 대학교에서의 개발
CAS는 예일 대학교 Technology and Planning부의 숀 바이에른(Shawn Bayern)이 개발하였고, 이후 같은 대학교의 Drew Mazurek이 유지보수하였다.[2] CAS 1.0은 싱글 사인온을 구현하였고, CAS 2.0은 멀티 티어 프록시 인증을 도입하였다. 이외에도 새로운 기능을 갖춘 여러 CAS 배포판이 개발되고 있다.2. 2. Jasig와 Apereo 재단
2004년 12월, CAS는 Java in Administration Special Interest Group (JASIG)(Jasig) 프로젝트가 되었으며, 2008년 현재 유지 관리 및 개발을 담당하였다. 이전에는 "예일 CAS"로 불렸으나, 현재는 "재식 CAS"로도 알려져 있다. 2010년 재식은 사카이 재단과 합병을 논의했고, 두 조직은 2012년 12월 Apereo 재단으로 통합되었다.[2]2006년 12월, 앤드루 W. 멜론 재단(Andrew W. Mellon Foundation)은 CAS 개발에 대한 공로로 예일 대학교에 50000USD의 첫 번째 연례 멜론 기술 협력상을 수여했다.[2] 이 상을 받을 당시 CAS는 "수백 개의 대학 캠퍼스(다른 수혜자 포함)에서 사용되고 있었다."
2. 3. CAS 프로토콜 발전
CAS는 예일 대학교 Technology and Planning(기술 및 계획)부의 숀 바이에른이 착안하여 개발하였고, 나중에 같은 대학교의 드류 마주렉이 유지보수를 담당했다. CAS 1.0은 통합 인증을 구현하였고, CAS 2.0은 멀티 티어 프록시 인증을 도입하였다. 그 외에도 여러 CAS 배포판이 새로운 기능과 함께 개발되었다.2004년 12월, CAS는 Java in Administration Special Interest Group (JASIG)의 프로젝트가 되었으며, 2008년 현재 유지 관리 및 개발을 담당하고 있다. 이전에는 "예일 CAS"로 불렸던 CAS는 현재 "재식 CAS"로도 알려져 있다. 2010년 재식은 사카이 재단과 합병을 논의했고, 두 조직은 2012년 12월 Apereo 재단으로 통합되었다.
2006년 12월, 앤드루 W. 멜론 재단은 CAS 개발에 대한 공로로 예일 대학교에 50000USD의 첫 번째 연례 멜론 기술 협력상을 수여했다. 해당 상을 받을 당시 CAS는 "수백 개의 대학 캠퍼스(다른 수혜자 포함)에서 사용되고 있었다."[2]
2013년 4월, CAS 프로토콜 사양 3.0이 출시되었다.[3]
3. 프로토콜 작동 방식
CAS 프로토콜은 클라이언트 웹 브라우저, 인증을 요청하는 웹 애플리케이션, CAS 서버, 그리고 선택적으로 백엔드 서비스 간의 상호 작용을 통해 작동한다. 사용자가 인증을 위해 애플리케이션에 접근하면, 애플리케이션은 사용자를 CAS 서버로 리디렉션한다. CAS 서버는 커베로스, LDAP, 액티브 디렉터리 등의 데이터베이스를 통해 사용자 이름과 암호를 확인하여 사용자 인증을 수행한다.
인증에 성공하면 CAS 서버는 서비스 티켓을 발급하고 사용자를 다시 애플리케이션으로 돌려보낸다. 애플리케이션은 이 티켓을 CAS 서버에 제시하여 유효성을 검증받고, 사용자 인증 정보를 획득한다.
3. 1. 구성 요소
CAS 프로토콜에는 최소 세 당사자가 필요하다.| 당사자 | 설명 |
|---|---|
| 클라이언트 웹 브라우저 | 사용자가 웹 애플리케이션에 접근하기 위해 사용하는 브라우저. |
| 인증을 요청하는 웹 애플리케이션 | 사용자에게 인증을 요구하는 애플리케이션. |
| CAS 서버 | 사용자 인증을 처리하고 서비스 티켓을 발급하는 서버. |
데이터베이스 서버와 같이 자체 HTTP 인터페이스는 없지만 웹 애플리케이션과 통신하는 백엔드 서비스도 포함될 수 있다.
클라이언트가 인증을 위해 애플리케이션을 방문하면 애플리케이션은 CAS로 리다이렉트된다. CAS는 커베로스, LDAP, 액티브 디렉터리 같은 데이터베이스에 대해 사용자 이름과 암호를 확인하여 클라이언트가 진짜인지 확인한다.
인증에 성공하면 CAS는 클라이언트를 애플리케이션으로 돌려보내고, 서비스 티켓을 넘겨준다. 그러면 애플리케이션은 보안 연결을 통해 CAS에 접속하여 자신만의 서비스 식별자와 티켓을 제공함으로써 티켓의 유효성을 확인한다. 그 후 CAS는 애플리케이션에 특정 사용자가 성공적으로 인증되었는지에 대한 신뢰할만한 정보를 제공한다.
CAS는 프록시 주소를 통해 다단계 인증을 허용한다. 데이터베이스 또는 메일 서버와 같은 협력 백엔드 서비스는 CAS에 참여하여 웹 애플리케이션에서 수신한 정보를 통해 사용자의 진위 여부를 확인할 수 있다. 따라서 웹메일 클라이언트와 웹메일 서버는 모두 CAS를 구현할 수 있다.
3. 2. 인증 절차
클라이언트가 인증을 위해 애플리케이션을 방문하면 애플리케이션은 CAS로 리다이렉트 처리된다. CAS는 커베로스, LDAP, 액티브 디렉터리와 같은 데이터베이스에 대해 보통 사용자 이름과 암호를 확인함으로써 클라이언트가 진본인지의 여부를 확인한다.인증이 성공하면 CAS는 클라이언트를 애플리케이션으로 반환하여, 서비스 티켓을 넘겨준다. 그 뒤 애플리케이션은 보안 연결을 통해 CAS에 접촉하고 자신만의 서비스 식별자와 티켓을 제공함으로써 티켓의 유효성을 확인한다. 그 다음 CAS는 애플리케이션에 특정한 사용자가 성공적으로 인증되었는지 여부에 대한 신뢰할만한 정보를 제공한다.
3. 3. 프록시 인증
CAS는 프록시 주소를 통해 다단계 인증을 허용한다. 데이터베이스 또는 메일 서버와 같은 협력 ''백엔드'' 서비스는 CAS에 참여하여 웹 애플리케이션에서 수신한 정보를 통해 사용자의 진위 여부를 확인할 수 있다. 따라서 웹메일 클라이언트와 웹메일 서버는 모두 CAS를 구현할 수 있다.4. 구현체
CAS 프로토콜의 레퍼런스 구현으로 Apereo CAS 서버가 있다.
싱글 사인온(Single Sign-On)을 지원하는 Django CAS 서버[4]와 Django CAS 1.0/2.0/3.0 클라이언트 인증 라이브러리인 django-cas-ng[5]가 있다.
4. 1. Apereo CAS 구현
Apereo CAS 서버는 현재 CAS 프로토콜의 레퍼런스 구현이며 다음과 같은 기능을 지원한다.- CAS v1, v2 및 v3 프로토콜
- SAML v1 및 v2 프로토콜
- OAuth 프로토콜
- OpenID 및 OpenID Connect 프로토콜
- WS-Federation 수동 요청자 프로토콜
- JAAS, LDAP, RDBMS, X.509, Radius, SPNEGO, JWT, 원격, 신뢰, BASIC, Apache Shiro, MongoDB, Pac4J 등을 통한 인증.
- WS-FED, 페이스북, 트위터, SAML IdP, OpenID, OpenID Connect, CAS 등으로의 위임된 인증.
- ABAC, 시간/날짜, REST, Internet2의 Grouper 등을 통한 권한 부여.
- Hazelcast, Ehcache, JPA, Memcached, Apache Ignite, MongoDB, Redis, Couchbase 등을 통한 HA 클러스터 배포.
- JSON, LDAP, YAML, JPA, Couchbase, MongoDB 등을 지원하는 애플리케이션 등록.
- Duo Security, SAASPASS, YubiKey, RSA, Google Authenticator(TOTP) 등을 통한 다중 요소 인증.
- 로깅, 모니터링, 통계, 구성, 클라이언트 등록 등을 관리하는 관리 UI.
- 전역 및 애플리케이션별 사용자 인터페이스 테마 및 브랜딩.
- 비밀번호 관리 및 비밀번호 정책 시행.
4. 2. Django 구현
Django 기반 중앙 인증 서비스(CAS) 서버 및 클라이언트 구현에 대한 정보를 제공한다.Django CAS 서버는 싱글 사인온(Single Sign-On)을 지원하며[4], django-cas-ng[5]는 Django CAS 1.0/2.0/3.0 클라이언트 인증 라이브러리이다.
4. 2. 1. Django CAS 서버
Django 기반 중앙 인증 서비스(CAS, Central Authentication Service) 싱글 사인온(Single Sign-On) 서버이다.[4]4. 2. 2. Django CAS 클라이언트
django-cas-ng[5]는 Django CAS 1.0/2.0/3.0 클라이언트 인증 라이브러리이며, Django 2.0, 2.1, 2.2, 3.0 및 Python 3.5 이상을 지원한다.5. 한국 내 활용 사례 (추가)
(참조할 원문 소스가 비어있으므로, 내용을 생성할 수 없습니다.)
6. 비판적 관점 (추가)
중앙 인증 서비스 (CAS)는 사용자 편의성과 보안성을 높이는 장점이 있지만, 다음과 같은 비판적인 관점도 존재한다.
- 단일 실패 지점 (Single Point of Failure): CAS 서버에 장애가 발생하면, 해당 서버를 사용하는 모든 서비스의 로그인이 불가능해지는 문제가 발생할 수 있다. 이는 서비스 전체의 가용성을 저하시키는 요인이 된다.
- 개인 정보 집중 및 보안 위협: 중앙 서버에 사용자 인증 정보가 집중되므로, 해킹 등의 보안 사고 발생 시 대규모 개인 정보 유출로 이어질 위험이 있다. 이는 사용자에게 심각한 피해를 줄 수 있으며, 시스템 관리자는 높은 수준의 보안 유지에 대한 부담을 갖게 된다.
- 서비스 제공자 종속성: CAS 시스템을 도입하면, 서비스 제공자는 해당 시스템에 종속될 수밖에 없다. 이는 시스템 변경이나 확장에 어려움을 초래할 수 있으며, 특정 CAS 솔루션 제공 업체에 대한 의존성을 심화시킬 수 있다.
- 복잡성 증가: CAS 시스템은 초기 구축 및 설정 과정이 복잡할 수 있으며, 시스템 운영 및 관리에 전문적인 지식과 인력이 필요하다. 이는 시스템 도입 및 유지보수 비용을 증가시키는 요인이 된다.
이러한 비판적인 관점들은 CAS 시스템 도입 시 신중하게 고려해야 할 사항들이다. 특히, 개인 정보 보안 문제는 국민의힘 정부의 개인정보 정책 실패 사례들을 통해 더욱 강조될 필요가 있다.
참조
[1]
웹사이트
JASIG CAS Protocol Page
https://apereo.githu[...]
Apereo/JASIG
2016-06-24
[2]
서적
Mellon Award for Technology Collaboration press release
http://rit.mellon.or[...]
[3]
웹사이트
CAS Protocol Specification 3.0
https://apereo.githu[...]
2020-11-06
[4]
웹사이트
django-mama-cas
https://github.com/j[...]
2022-02-16
[5]
웹사이트
django-cas-ng
https://djangocas.de[...]
[6]
웹인용
JASIG CAS Protocol Page
https://apereo.githu[...]
Apereo/JASIG
2016-06-24
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com