Skip to content

Latest commit

 

History

History

(문성혁) 인증의 오아시스, OIDC를 아시나요?

인증의 오아시스, OIDC를 아시나요?

발표 관련하여 (혹은 관련이 없더라도) 궁금한 부분이 있다면 [email protected] 로 질문 보내주세요!

이 아래엔 발표 내용과 별 관련없는 후일담을 남겨둡니다.

발표자가 되기 전의 상황

최근 회사에서 SAML 인증 방식의 사내 서비스 연동을 체험했습니다. (체험했다고 표현한건 제가 구현한 건 아니기 때문)

그리고 또 동시에, 어쩌다보니 OIDC를 접하게 되었습니다. 아마 GitHub의 "OIDC 잡숴봐"가 첫 글이 아니었나 싶은데요. 이걸 주제로 고르게 될 줄은 몰랐습니다.

아무튼 정신차려보니 발표자로 지원하고 있었습니다(??).

발표의 목적에 대해 고민하기

발표의 목적에 대해서 먼저 생각해봤습니다.

"나 자신에게도 유익하면서 (너무 쉽지 않으면서), 남들에게도 도움이 되는 (인터넷에서 자료가 쉽게 안나오는) 정보를, 쉽게 전달하자" 라는 기준을 정했습니다.

우선 첫 번째 조건에 대해 얘기보고 싶군요. 저는 일단 발표 경험이 그 자체로 유익하다고 생각합니다. 남들 앞에 서서 말한다는 것은 , 시선 처리, 손짓, 움직임, 발성, 물 흐르듯 흘러가는 발표 플로우 (기승전결), 각 슬라이드 별 적절한 그림과 텍스트, ... 공개 자리에서 발표한다는 것은 멋진 일이고, 또 스릴 있는 작업입니다. 그러나 그것만으로는 부족했습니다. 새로운 지식을 배우길 원했어요. 내가 아는 것을 전달하는 것만으로는 만족스럽지 않겠다는 결론에 도달했어요. (사실 아래 두 번째 조건과도 연결되는 이야기입니다)

두 번째 조건에 대해서 얘기해보자면, 저는 인터넷에 있는 정보를 그대로 전달하는 것이 정말 싫었습니다. 일종의 명예욕인 것 같아요. 그러나 인터넷에 없는 것을 얘기하려면 특정 제품(program)을 정말 많이 써봐야 된다고 생각합니다. 제가 튜토리얼밖에 안해봤는데 어떻게 튜토리얼 이상의 것을 얘기할 수 있겠어요. 그런데 저에겐 그렇게까지 전문화된 분야가 아직 없어요. 그럼에도 발표는 하고 싶었어요. 저에게 좋은 기회가 될 것이라고 생각했어요.

좋게 말하면 스스로를 컴포트존 밖으로 밀어낸 것이고, 나쁘게 말하면 저의 성장을 위해서 아우쓱콘에 오는 순진한 사람들을 이용한 셈이죠.

세 번째 조건은... 제가 발표할 주제를 아주 잘 이해해야만 달성 가능한 조건입니다. 그래야 한다고 생각했어요.

발표의 컨셉 정하기

이러한 목적과 저의 상황 하에서, 진지하게 고급진 내용을 전달하는 것보다, 대놓고 "맛보기 of 맛보기 of 맛보기" 형태로 가는 것이 안전하겠다는 판단을 했습니다. 그 정도라면 잘못된 내용을 전달하진 않겠지, 라는 생각도 있었고요.

오산이었습니다.

OIDC 벼락치기

어찌저찌 해서, OIDC를 주제로 선택하면 (1) 너무 쉽지 않으면서 (2) 인터넷에 (한 번에 이해하기 좋은) 자료가 많이 없는 주제이면서 (3) 잘 이해해서 발표에 녹여낼 수 있지 않을까, 하는 생각을 했습니다. "내가 처음 들어볼 정도면 이건 (대학생에게는) 신식 문물 축에 넣어도 되겠다"라는 생각도 깔려있었습니다.

그런데... 진짜 너무 어려웠어요! 기술의 난이도 문제가 아닙니다. SAML, OIDC, OAuth, aud, sub, iss, JWT, XML, Assertion, Flows, Authorization Server, Relaying Party, IdP, Service Provider, Keycloak, Cognito, Okta, Auth0, SSO, ... 이 단어와 이 단어는 같은걸 말하는 것 같은데 대체 왜 용어가 두 개인가?? 인증과 인가의 세계가 이렇게 깊단 말인가...?

지금 와서 생각해보면, 권한 시스템에 대한 기초적인 이해가 없으니 기준점이 없어서 계속 이리저리 흔들렸던 것 같아요.

제가 해본 발표 중에선 대규모.. 그리고 불특정 다수.. 라고 생각했어요. 그래서 굉장히 압박감이 심한 것도 한 몫 했던 것 같군요.

대충 기억을 더듬어보면 약 50개의 블로그, 아티클, 도큐먼테이션을 봤고, 10개 정도의 유튜브 영상을 보았습니다. 그쯤 되니 전체적인 그림 정도는 이해할 수 있겠더군요. 그리고 그림을 이해하고 나니, 어떤 부분을 애니메이션화 해야할지도 가닥이 잡혔습니다.

추가로, 개인적인 시간관리능력결함 이슈 때문에 결국 발표 당일날까지 데모를 테스트하고 장표를 수정했습니다. Thanks to @naru200 !

발표 진행

딜레이가 있어서 5분 늦게 시작했습니다. 그리고 중간에 슬라이드 하나가 실수로 삭제되어 잠깐 pdf 백업을 가져와서 화면에 띄웠습니다. 그리고 나서 다시 키노트를 띄우니 타이머가 초기화되어서... 시간 개념이 완전히 고장났습니다. 전면 벽에 시계가 있는데도 몇 분 남았는지 감이 오지 않았어요. 제가 30분까지 하는건지 50분까지 하는건지 머릿속이 어질어질했습니다.

사람들의 표정이 안보였어요. 정확히는 오른쪽 맨 앞에 계셨던... 인자한 표정의 한 분 때문에... 다른 분들 표정이 눈에 안들어왔어요. 엄청난 긴장량 + 엄청난 포스의 청자1 = 엄청난 시선처리 고장. 으아아아아

그래도 전반적으로 분위기가 나쁘지 않았다고 생각합니다. 끝나고 몇 분께서 질문해주셔서 너무 좋았어요. Thanks to @umi0410 !

발표 종료

데모 부분을 충분히 보여줬는지 잘 모르겠습니다. 제가 하고 싶은 얘기는 다 하고 나왔는데, 발표 연습이 충분치 않았던 것 같아요. 매끄럽지 않았던 부분들이 기억납니다. 실내가 상당히 더웠는데 그것도 꽤나 문제가 되었습니다. 슬라이드를 넘기다가 화면 전환을 하고, 데모를 위해 분리되어있던 스크린을 미러링으로 바꾸는 과정에서 상당히 답답함을 전달해주지 않았을까 싶네요. 목소리도 긴장 탓에 과하게 억죄는 느낌으로 발성이 나왔습니다. 상당히 아쉽습니다.

그러나, 꽤 괜찮은 체험이었어요. 누군가에게 도움이 되었기를.

피드백 주신 다양한 분들 모두 감사합니다. 발표 들어주신 분들도 모두 감사합니다.

행사 준비해주신 모든 스탭분들, 진심으로 존경합니다. 수고하셨어요 다들.