[ Architecture, Technology ,Web ] SSO(Single Sign On) 그리고 SAML에 대해

이미지
이번 프로젝트 내부에서 어쩌다보니  유저 인증 관련 업무를 담당하게 되었고, 해야하는 업무는 내부에 사용했던 적이 없던  새로운 개발 플랫폼에서  SSO의 프로토콜 중  SAML을 이용해 앱의 인증을 구현해야만 했다. SSO를 생각해본적 조차 없는 상황에 이를 새로운 개발 플랫폼에 도입해야 했기 때문에 많은 시행착오를 겪었으나 구현에 성공하였으며 덕분에 SSO에 대한 전반적인 지식을 쌓을 수 있었다. 이번에는 그러한 과정에서 나온 지식들과 경험을  공유하고자 한다. SSO에 대한 정의 먼저 사전적 정의 부터 살펴보자. 다만, 기술적인 용어다보니 자주 사용하는 옥스포드 사전에 정의를 찾을 수 없기 때문에  검색으로 찾을 수 있는 정의를 몇 가지 살펴보고 교차 검증을 해보자. 첫 번째 정의를 살펴보자. Single sign-on (SSO) is an identification method that enables users to log in to multiple applications and websites with one set of credentials.  SSO는 웹사이트에서 한 번의 인증(one set of credentials)으로 복수의 어플리케이션에 로그인 할 수 있는 인증(identification) 방법(method) 이다. 두 번째는 위키피디아의 정의이다. Single sign-on (SSO) is an authentication scheme that allows a user to log in with a single ID to any of several related, yet independent, software systems. SSO는 독립적이지만 연관되어있는 몇몇 소프트웨어에 대해 하나의 ID로 로그인을 할 수 있도록 하는 인증 구조(scheme) 세부 설명에 조금 차이가 있어 보이지만 전체적인 틀은 매우 비슷해 보인다.  몇 가지 포인트가 되는 단어를 추출해 이를 연결해보자면 아래와 같은 의미를 산출 할 수 있다. 독립적이지만 연관되어 있

[ Essay - Human ] 노력은 사람을 배신하기도 한다.



내가 어릴 때 가장 자주 들었던 이야기가 있다.

바로 '노력은 배신하지 않는다' 라는 격언이다.

이러한 격언을 들으며 자라왔던 나는
정말 '노력은 배신하지 않는다'라는 

왜냐하면 정말 수 많은 어른들이 
그러한 이야기를 나에게 했기 때문이며,
미디어에서 조차 이런 말을 했기 때문이다.

그렇기 때문에 어렸을 적의 나는 
그 격언이 '진리'인 줄 알았으며,

이에 따라 나의 노력을 어른들이 부정한다고 해도
나의 마음속에서는 조금 이상함을 느꼈지만,

그들의 비판인듯한 비난을 받아드릴 수 밖에 없었고,
나의 노력이 부족하다고 생각했었다.

왜냐하면 내가 조금 이상하다며 이야기를 할 때마다
들을 수 있는 대답들은 
'아직 너가 어려서 사회를 모른다'라는 식의 이야기 였기 때문이다.

사실이다. 

나는 그 당시 어렸고, 
사회에 진입할 나이는 아니였기 때문에 
그러한 의문점을 마음 한 구석진 곳에 밀어 넣으며 애써 무시했다.

하지만,
나이가 점점 들어감에 따라 조그만 했던 
의문이 점점 커지기 시작 했다.

왜냐하면 내가 충분히 노력을 했음에도 
대체로 내가 원했던 결과가 나오지 않았으며,
심지어 수준 미달인 경우도 있었다.

이에 대해 나는 의문을 제시했다.

'노력은 배신하지 않는다'라는 말이 옳고, 그것이 진리라면
나는 노력을 하지 않은 것이 되기 때문이다.

나는 알고 있다.
나 자신이 충분히 시도했고 노력했다는 사실을 말이다.

하지만 사회는, 어른들은 
'노력은 배신하지 않는다'라는 격언에 따라
'너의 노력이 부족하다'라는 이야기를 나에게 서슴 없이 했다.

나의 노력이 정말로 부족했을까?

'노력은 배신하지 않는다'라는 격언이 이상한게 아닐까?
라는 생각이 그때부터 들기 시작 했다.

그리고 그때부터 
노력이라는 가치에 대해 끊임 없이 생각해 왔었고
최근에 들어서 나는 이런 노력이라는 가치에 대해 결론을 맺을 수 있었다.

따라서 오늘은 이에 대한 이야기를 하려고 한다.

노력에 대한 정의


먼저 노력에 대한 정의를 하고 이야기 해보자.

이전과 동일하게 옥스포드의 영영사전을 참고하겠다.



옥스포드 영영사전에 따르면 아래와 같다.[1]

무언가를 하려는 어떤 시도(an attempt to)로
특히 하기 어려운 것을 할 때를 말한다.

즉, 일반적으로 어떤 것을 하려는 시도를 말하지만
특히 어려운 것을 하려고 하는 행위를
노력(Effort)라고 할 수 있을 것이다.

여기서 한 가지 예로 마음에 드는 문장을 소개하자면 

despite somebody's efforts Despite our best efforts, 
we didn't manage to win the game.
모두 최고의 노력을 했음에도 불구하고 
우리는 게임에서 이기지 못했다.

인데, 내가 이번 글에서 이야기하고 싶은 내용과
아주 잘 맞는 예문이라고 생각한다.

그렇다면 이제 본격적으로 이야기를 시작해보자.

그렇다면 노력은 정말로 배신을 하는가?


결과적으로 말하면
'노력은 배신하지 않는다'라는 격언은 
그런 격언에 대해 어른들이 생각하는 것 처럼 '진리'가 아니라는 것 이다.

왜냐하면 한 마디로 
지금 이 세계에 있는 사람들은 모두 '인간'이기 때문에 
'노력은 배신하지 않는다'라는 격언은 진리가 될 수 없다.

다만, 이러한 격언이 몇 가지 가정이 붙었을 때 
'진리'에 가까워지므로, '부분적 진리'라고는 말 할 수 있는데

적절한 시기에, 충분한 노력을 하고, 기회가 보였을 때
결과적으로 그러한 '노력이 배신하지 않는다'라고 할 수 있기 때문이다.

예컨데, 
당신이 어떤 물건을 개발에 성공했다고 가정해보자.

당신이 생각하기에는 정말로 유용하고,
생활에 있어서 충분히 도움이 될 것이라고 생각 했다.

하지만, 생각보다 자신이 개발한 상품은 잘 팔리지 않았다.

이렇게 생활에 유용해 보이는데에도 말이다!

적절한 시기에, 충분한 노력을 했는데에도 
당신의 노력은 배신당한 것 이다.

하지만 그 제품이 생활에 유용하다는 생각은
당신의 착각이 였던 것이다.

즉, 착각에 빠져 기회가 보이지 않았음에도
기회가 보인 것 처럼 행동한 것 이다.

이러한 예는 지금에도 얼마든지 존재한다.

바로 '구글 글래스'를 예로 들 수 있다.

구글 글래스의 팀들은 안경으로 
여러가지 정보를 알려 줄 수 있는 '구글 글래스'를 

하지만 구글 글래스는 시장에 나올 수 없었다.

왜냐하면 '개인 정보 보호'의 문제가 있기 때문이다.[2] 

구글 글래스라는 제품을 만들기 위해 
구글 글래스 팀들은 충분한 노력을 하고,
지지부진 했던 IT산업에 새로운 패러다임을 불러올 수 있는 
기회가 보였지만,적절한 시기가 아니였다. 

많은 사람들은 구글 글래스가 
'개인 정보'를 유출시키기 적절하다고 생각한 것이다.

'노력이 배신한 것'이다.

또 예를 들어보자면 축구 팀을 들어볼 수 있다.

결국 누군가는 이기고, 
누군가는 지는 것이 축구의 세계이다.

A팀과 B팀이 경기를 해서 A팀이 이겼다고 가정해보자.

그렇다면 B팀은 노력을 안했기 때문에 진 것인가?

그렇지 않다.
B팀의 선수들은 이기기 위해 충분한 훈련을 했을 것이고,
B팀의 감독과 스태프들은 이기기 위해 
최선을 다해 전술과 선수들의 컨디션을 조절해 줬을 것이다.

하지만 팀은 패배했다.

어찌된 일인가 !

또 노력을 했음에도 배신한 것이다.

이 경우 여러가지 이유가 언급될 수 있지만,
기회를 놓친 공격수, 그리고 수비 실책을 한 수비수 들이 
주로 언급될 수 있을 것이다.

수 많은 훈련을 했지만 결국 기회를 놓친 것 이다.

이 외에도 노력이 사람을 배신하는 경우는 
부지기수로 나타나며, 나는 더 많은 예를 이야기할 자신이 있다.

이 처럼 무려 3가지의 가정이 붙어야만
'노력은 배신하지 않는다'라는 것이 '진리'에 가까울 수 있다.

물론 그런 의미가 아니라 
좀 더 열심히하라는 의미에서 
이런 말을 할 수도 있다고 생각한다.

하지만, 어느 일이던 간에 마찬가지이지만
우리는 성공하기도 실패하기도 한다.

왜냐하면 그런 사람들의 말에 따르면 
노력은 배신하지 않는데,

이 말은 즉 그가 실패한 이유는 
충분한 노력을 하지 않았기 때문이 되기 때문이다.

위의 예로 이야기하면 
당신은 충분히 노력하지 않았기 때문에 
당신의 물품은 시장에서 실패한 것이고, 여기서 아무것도 얻을 수 없을 것이며,

또한 구글 글래스 팀은 충분히 노력하지 않았기 때문에
구글 글래스는 시장에서 실패한 것이고, 여기서 아무것도 얻을 수 없을 것이고

마지막으로 축구 B팀은 충분히 노력하지 않았기 때문에
축구 시합에서 진 것이고, 여기서 아무것도 얻을 수 없었을 것 이다.

당신과 구글 글래스 팀과 축구 B팀은 
노력을 충분히 하지 않았기에 실패했는가?

충분히 노력하지 않았다면
그들은 어떤 노력을 충분히 하지 않았다는 것인가?

나는 지금 까지 살아오면서
이런 의문에 대한 대답을 들어본적이 없다.

현실은 그들이 주장하는 것과는 
너무나도 다르다.

당신은 시장에서 실패한 원인에 대해 고찰하고 성찰한다면
사람들이 원하는 물품을 시장에 내놓을 수 있을 것이며,

구글 글래스는 실패한 원인인 개인 정보 보호 문제에 대해
사람들의 인식이 누그러들 때 까지 
프로젝트를 진행하면서 기회를 엿볼 것이고,

축구 B팀은 실패 원인에 대해 분석하여
좀 더 다른 훈련 세션을 더불어 
기존 선수를 방출 및 새로운 선수의 영입을 고려해볼 수 있다.

이 처럼 인간은 실패를 통해 
오늘 보다 더 나은 내일을 생각하고 고찰하여 성찰함으로써

옛것에 새것을 더한다는 의미에 '진보' 할 수 있는 동물이며,
이것이 인간이 가지고 있는 유니크함임과 동시에 존엄성이다.

만약 실패한 사람에게 이런 말을 한다면
그가 실패 과정에서 얻었던 깨달음들을 무시하고
필요없다고 이야기하는 것과 같다.

왜냐하면 그가 실패한 원인은 다른 것이 아니라
노력이 충분치 않다는 
단 하나의 원인을 지목할 수 있기 때문이다.

따라서 이러한 생각이 
사회 전반적으로 깔려 있다면, 실패는 용납 받을 수 없다.

그러한 논리에 따라 실패는 
곧 충분한 노력하지 않은 것이기 때문이다.

하지만 무언가 이상하지 않은가?

영원한 제국은 존재 하지 않듯이
영원한 갑도 영원한 을도 없으며,

영원한 승리가 없듯이 영원한 실패도 없다.

그들의 논리에 따르면 노력만 한다면 
영원한 승리가 따라온다는 것과 무엇이 다른가?

하지만 그렇지 않다는 것은 
인류의 역사를 보면 이미 증명되어 있는 사실이다.

인간이 실패하는 것은 당연하다.

왜냐하면 무지하고 아는게 없기 때문이다.

도대체 나는 인간이 무엇을 
알고 있는지에 대해 잘 모르겠으며

자신이 매우 잘 알고 있다는 듯이 
마음껏 뽐내는 사람들을 이해할 수 없다.

물론 어떤 한 분야에 그런 경지에 도달한 사람들이 
간혹 있긴 하지만 그렇게 많지는 않며,
그러한 사람들은 대개 
자신이 매우 잘 알고 있다는 사실에 대해 뽐내지 않는다.

하지만 그런 것 치고 
스스로 전문가라고 이야기하는 사람들이, 
그리고 자신이 잘 알고 있다는 듯이 
말하는 사람이 너무 많다는 것이다.

실제 사회에서 
전문가를 고용했다고 하지만
제대로된 역할을 하지 못하는 경우가 심심치 않게 보인다.

따라서 인간은 잘 모르기에 성공보다 
실패가 많은 것이 당연하며,

실패를 함으로써 고찰과 성찰을 통해 
오늘 보다 나은 내일을 만드는 존엄성을 가진 동물이다.

나는 이 존엄성이야 말로 
다른 동물들이 가지지 못하는 인간만의 
고유한 유니크 함이라고 생각 한다.

하지만 노력은 배신하지 않는다라는 논리안에서는

인간이 실패했다는 것은 
노력이 충분치 않다는 것이므로 
노력을 채우기만 하면 된다는 것 이다.

이 안에 어떠한 인간의 존엄성을 찾을 수 있는가?

노력만을 하면 우리는 앞으로 나아갈 수 있는가?

하지만 정작 그런 말을 하는 사람들은 
얼마나 더 노력을 해야하는지에 대해 정확히 이야기해주지 않는다.

그들의 논리는 존 내쉬의 직감에 의해 
논파가 쉽게 가능 하다.

왜냐하면 각 개인이 최선의 선택을 한다하더라도 
최고의 결과를 낳지 않기 때문이라는

각 개인들이 충분한 노력을 해도 
좋은 결과를 낳지 않는

즉, 노력이 다수의 사람을 배신하기도 한다고 말 할 수 있기 때문이다.

우리는 왜 노력하고 있음에도 불구하고
고질적인 사회 문제를 해결하지 못하는가?

과연 그들의 말대로 노력하지 않는 
게으른 사람이 다수 존재해서
사회 전체적인 노력이 부족해서 일까?

적어도 나는 그렇게 생각하지 않는다.

노력의 문제가 아닌 '인간'인데도 불구하고 
좀 더 나아가기 위한 이야기를 하지 않기 때문이다.

좀 더 정확히 말하면
이런 저런 변명을 대가면서 
자신의 권위가 약해지고, 자신의 채면이 서지 않기 때문에
이야기하기를 원치 않는 
'비열한 어른'들이 이 세상에 너무나도 많기 때문이다.

사회 문제를 해결하기 위한 해답을 찾기 위해서는
사회 구성원 간에 이야기함으로써 해결해야만 한다.

문제를 해결할 수 만 있다면
6살베기 어린 꼬마아이의 말도
청소년도, 청년의 말도 들을 필요가 있다는 말이다.

하지만 실제로 그러한가?

비열한 어른들은 
나이가 많아 경험이 더 많다고, 

더 많은 지식을 가지고 있다고 
그리고 이런 가정 하에 
자신이 어린 꼬마 아이들 보다, 청소년보다, 그리고 청년보다 
더 나은 인간임에 대한 자부심을 가지고 있다.

하지만, 세계가 인터넷에 연결되면서
지식과 경험이 공유되면서, 

결코 어른들이 더 나은 직감을 가지고 있다고 할 수 없게 되었다.

과거 그들만이 가졌던 경험과 지식은 
이미 다른 사람에 의해 공유되어졌기 때문이다.

또한 사회가 점점 빠르게 발전하면서
그들의 경험과 직감은 더 이상 쓸모없는 경우가 많아 졌다.

하지만, 매우 불행하게도
이런 현실이 실제로 나타남에도 불구하고 

그런 '비열한 어른'들은 
자신의 자부심을 버릴 생각은 없어보이고
오히려 더 뽐내고 싶어하는 듯 하다.

이런 상황에서 최근에 툰베리와 같은 
청소년이 주목 받는 것에 대해서 
매우 고무적인 현상이라고 생각한다.

결론


그럼에도 노력은 배신하지 않는다는 
논지를 버리지 않을 셈이라면 딱히 상관없다.

하지만 
이를 다른 사람에게 강요한다면 
나는 이에 대해 강력히 반대할 것이다.

노력은 배신하지 않는가?

아니다. 

노력은 배신하기도 한다.

노력이 배신하지 않을 때는
적절한 시기에 
충분한 노력을 하고 기회가 보였을 때

그러한 격언이 '진리'에 가까울 수 있다. 

'노력은 배신하지 않는다'라는 격언이 
사회를 지배하고 있는 세계에서는 
소수의 승리자의 '노력'은 찬양 받지만

대다수의 패배자들의 '노력'은 무시받고 비난 받는 
대다수가 불행해지는 세계만을 낳을 뿐이다.

왜냐하면 패배자들이 
아무리 충분한 노력을 한다 하더라도 
아무런 노력을 하지 않은 것이 되기 때문에
실패에 대한 관대함이 사라진다.

실패에 대한 관대함이 사라지면
이는 '진보'라는 
인간이 가지고 있는 존엄성을 무시하는 것이고,
인간은 인간으로서의 특별함을 잃게 되는 것 이다.

결과적으로 인간에서 부터 떨어져 나와
짐승이 될 수 밖에 없다.

물론 스스로가 
그런 짐승이 되고 싶다면 나는 말리지 않는다.

하지만 인간이고 싶다고 말하면서도
인간의 존엄성에 대해 무시한다면
나는 이에 대해 강력히 반대할 뿐이다.

그 이상의 의미는 결코 없다.



 

이 블로그의 인기 게시물

[ Web ] 웹 애플리케이션 아키텍처 (Web Application Architecture)

[ Web ] 서버 사이드(Sever Side) ? 클라이언트 사이드(Client Side)? 1 [서론, 클라이언트 사이드(Client Side)]

[ Web ] 웹 애플리케이션? 웹 사이트?(Web Application? Web Site?)