[ 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) 세부 설명에 조금 차이가 있어 보이지만 전체적인 틀은 매우 비슷해 보인다.  몇 가지 포인트가 되는 단어를 추출해 이를 연결해보자면 아래와 같은 의미를 산출 할 수 있다. 독립적이지만 연관되어 있

[ Django, Python ] mozilla 튜토리얼 예제로 살펴보는 Django 분석 ④ - 2 : 도전 과제

먼저 1번에서 이야기하는 title 블록이란


catalog/templates/ 경로의 base_generic.html 파일안
head 태그안에 있는 {% block title %} ~ {% endblock %}을 말한다.


나는 위와 같이 index.html에 기본적인 html태그와
title block을 추가해주었다.

아마 두 번째 title block로 오버라이딩 될 듯 싶은데
한번 확인해보자.

 
코드로 지정한대로 
Welcome to Local Library라는 텍스트가 
웹브라우저 타이틀로 보이는것이 확인 되었다.

두 번째로 
특정한 대소문자를 구분하지 않고
특정 문자 포함이니 일단 동일하게 
filter() 메소드를 사용하면 될 것 같다.

그렇다면 filter() 안에 대소문자를 구분하지 않고
문자를 포함하는 인수를 넣어야 하는데

이전에 filter()가 나왔을때 
표를 언급한적 있는데 
그 표를 다시 한번 보도록하자.

키워드

설명

__lt / __gt

작다 크다

__lt / __gte

작거나 같다작거나 크다

__in

리스트([1,2,3와 같은])

의 데이터와 동일한

검색

__year / __month / __day

일 검색

__isnull

Null인 값 검색

__contains

지정한 문자열을

포함하는 데이터를 검색

__icontains

지정한 문자열을

포함하는 데이터를 대소문자

구별하지 않고 검색

__startswith

지정한 문자열로 시작하는

데이터를 검색

__istartswith

지정한 문자열로 시작하는

데이터를 대소문자

구별하지 않고 검색

__range

문자숫자날짜의 범위를

지정해 검색


대소문자를 구분하지 않고 문자열을 포함하는 인수는
__icontains이다.

이것을 사용해서 구현해보자.


views.py에 빨간색 박스와 같이 코드를 추가해줬다.


가져온 데이터를 페이지에 보여줄 수 있게
index.html에도 코드를 추가했다.


위의 화면과 같이  
위에서 부터 책 이름 중에 of가 포함된 책의 갯수,
해당 책 이름,
해당 책 장르가 표시된다.

물론 책 장르의 경우 쿼리셋이 보이지만
일단 지금 상황에서 출력은 했으니 차후에 수정하도록 하겠다.



 

이 블로그의 인기 게시물

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

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

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