본문 바로가기
IT Network System/Windows Srv

[Active Directory] SSO

by Skills 2021. 5. 28.

※ AD를 왜 사용할까요? AD를 하면 언제든지 빠지지 않는 단어가 있는데 그게 바로 SSO(Single Sign On)입니다. AD 공부를 위해 SSO(인증, 허가, 암호화)에 대해 확실하게 알고 넘어갑시다!

 

* SSO(Single Sign On)

SSO가 뭘까? 회사에 개별적으로 컴퓨터가 있다. 그들은 각자 자신의 아이디와 패스워드를 입력해서 컴퓨터에 접속하게 되는데 이걸 중앙에서 관리하는 서버 즉, 놀이동산에 가면 티켓을 끊어주는 매표소가 바로 그 개념이다. 하나의 컴퓨터에 로그인을 해서 그 ID와 PW로 회사 전체에 있는 컴퓨터들을 관리하고 인증시켜주는 개념이다.

 

이 SSO 개념을 사용한 Microsoft의 디렉터리 서비스가 바로 Active Directory이다.

 

* AD의 주목적

위에 설명한 듯이 AD의 주요한 목적은 바로 이 계정에 대한 인증 처리(얘가 누구인가), 이 컴퓨터가 무엇을 할 수 있는가(무슨 권한을 가질 수 있는가)를 중앙에서 관리하는 것이다.

 

* 로컬 인증과 AD 인증

로컬 인증 : AD가 없을 때 컴퓨터에 ID와 PW를 치고 들어가면 로컬 인증기관에서 인증이 돼서 로그인이 된다.

AD 인증 : AD를 사용하면 중앙에 있는 컴퓨터(DC)에게 인증을 요청하고 DC는 자신이 관리하는 ID와 PW 목록에 그 게정이 존재해서 확인이 되면 로그인을 하게 해 준다.

 

* AD 역할

예를 들어보자, 세미나에 참석을 했다. 세미나에 가면 안내 데스크가 있고 거기서 자신의 이름을 말하면 안내원이 내 정보에 맞는 이름표를 건넨다. 이름표에는 내 이름, 회사, 권한(참석자, 안내위원, 강사) 이런 식으로 적혀있다. 이게 바로 인증을 받아서 내 정보에 맞게 권한을 부여받은 것이다. 나는 손하진, OO회사, 참석자 권한이야 그러면 내가 안내위원 실에 들어갈 수 있을까? 들어갈 수 없다. 왜? 권한이 없으니까 여기서 안내데스크 역할을 하는 것이 바로 AD이다. (인증된 사용자 정보에 따라 알맞게 권한을 준다.)

 

결국 AD는 사용자의 정보를 확인해서 인증(Authentication)을 하는 역할과 사용자의 정보에 따라 권한을 부여하고 각 권한에 맞게 자원의 접근을 허가(Authorization)하는 역할을 하는 것이다.

 

* 권한, 접근 권한

허가(Authorization)는 right, permission이라는 두 가지 방식이 있다.

right는 권한이고 permission은 접근 권한이다.

 

윈도우에는 슈퍼 계정이 있다. 바로 Administrator라는 슈퍼 계정인데 이게 어떻게 슈퍼 계정이 되었을까? Administrator가 슈퍼 계정인 이유는 right과 permission을 모두 가지고 있기 때문이다. 아래 예시를 통해 알아보자.

 

컴퓨터 구성 → Windows 설정 → 보안 설정 → 로컬 정책 → 사용자 권한 할당(User rights assignment)

로컬 그룹 정책 편집기(gpedit.msc)에서 위의 경로로 가게 되면 시스템 종료라는 것이 보인다. 여기 권한에 Administrator가 있다. 이처럼 시스템을 종료하는 것조차 누군가의 허가 즉, 권한이 필요한 것이다. Administrator는 이걸 다 가지고 있기 때문에 슈퍼 계정이라고 불리는 것이다.

 

좀 더 알아보면 일반적인 사용자로 로그인했을 때도 네트워크에서 컴퓨터에 액세스 할 수 있는 것도 everyone 권한이 있기 때문에 모든 컴퓨터에서 접속이 가능한 것이다. 이렇게 눈에 안 보이게 허가가 다 되어있는 것이다. 위는 로컬을 기준으로 두었지만 이것을 중앙에서 해주는 것이 바로 AD이다. (로컬에선 로컬 정책, AD에선 그룹 정책)

 

permission은 폴더의 접근 권한 같은 것이다. 필자는 SON이라는 사용자로 컴퓨터를 사용 중이고 SON에게 permission이 주어졌기 때문에 그 권한에 맞게 폴더를 이용할 수 있는 것이다.

 

* 암호화

암호화(Encryption) 방식은 크게 두 가지가 있는데 바로 대칭키 방식과 비 대칭키 방식이다. 

 

대칭키 방식은 내가 abc라는 단어를 정하고 오른쪽으로 +2칸(shift)을 한다. 그럼 a는 c가 되고 b는 d가 되고 c는 e가 되어서 cde가 되는 것이다. 상대방은 그 값을 받고 다시 -2칸을 해서 복호화를 한다. (암호화 복호화에 같은 키를 사용)

 

비대칭키 방식은 키를 두 개 사용한다. 암호화에 사용하는 것과 복호화에 사용하는 것.

A와 B가 있는데 B는 B의 공개키와 개인키가 있다. 공개키는 암호화에 사용하는 키고 개인키는 해당되는 암호화된 데이터를 복호화할 때 사용하는 키이다. 개인키는 다른 사람한테 공유하지 않는 키이고, 공개키는 다른 사람에게 주는 키이다. A가 B에게 데이터를 보내려고 하면 B의 공개키를 가지고 와야 한다. 그리고 그 공개키를 보내면 그 공개키에 맞는 개인키를 갖는 B만 그것을 복호화할 수 있다. 이게 바로 비대칭키 방식이다. (암호화 복호화에 다른 키 사용)

 

이 비대칭키 방식을 이용하는 것이 인증서, 인증기관 바로 PKI라고 한다.

 

인증기관(CA)은 공개키들을 관리하는 곳이다. A와 B가 통신할 때 A가 B에게 공개키를 가져오는 것이 아니라 CA에게 B의 공개키를 받고 B와 통신할 수 있게 되는 것이다.

 

간단하게 말해서 실질적인 통신을 할 때 암호화는 대칭키를 사용한다. 그 대칭키를 보호하는 것이 바로 비대칭키 방식이고 비대칭키 방식을 통해서 대칭키를 안전하게 전송하여 안전한 통신을 하게 되는 것이다. (전체 내용을 대칭키로 암호화, 대칭키를 비대칭키로 암호화)

 

Reference

https://docs.microsoft.com/ko-kr/archive/blogs/koalra/ad-active-directory

728x90

댓글