ID 관련 용어 익히기
학습 목표
- ID 및 액세스 관리에 사용되는 업계 표준을 식별할 수 있습니다.
- SAML이 XML과 어떤 관련이 있는지 이해할 수 있습니다.
- ID 공급자와 서비스 공급자의 차이점을 이해할 수 있습니다.
ID 표준 및 프로토콜
다음은 Salesforce 및 기타 ID 공급자가 ID 솔루션을 구현하기 위해 따르는 세 가지 프로토콜입니다.
- SAML
- OAuth 2.0
- OpenID Connect
SAML 프로토콜
다음은 실제 동작하는 SAML의 몇 가지 예입니다.
- Salesforce에 로그인한 후 앱 시작 관리자를 클릭하여 Gmail 받은 편지함으로 바로 이동합니다.
- 다른 앱에 이미 로그인한 사용자가 다시 로그인하지 않고도 Salesforce 조직에 액세스할 수 있습니다.
SAML 어설션
SAML 동작 방식은 다음과 같습니다. 사용자가 서비스에 액세스하려고 시도합니다. 서비스 공급자는 기본적으로 "이 사용자가 내 서비스에 액세스해도 괜찮나요?"라고 묻는 요청을 ID 공급자에게 전송합니다. ID 공급자는 데이터베이스를 확인한 후 "예, 이 사용자는 승인되었습니다. 여기에 사용자에 대한 몇 가지 정보가 있습니다."라는 응답(어설션)을 반환하여 사용자가 올바른지 확인합니다.
그렇다면 ID 공급자와 서비스 공급자의 차이점은 무엇일까요? 기본적으로 ID 공급자는 사용자를 인증하고, 서비스 공급자는 인증된 ID를 요청합니다. ID 공급자와 서비스 공급자는 이 유닛의 뒷부분에서 자세히 설명하겠습니다.
어설션은 전송되는 정보입니다. 어설션은 사용자에 대한 상세 정보를 전달할 수 있습니다. 또한 이름과 성, 연락처 정보, 직급과 같은 사용자에 대한 속성도 포함할 수 있습니다.
SAML은 백그라운드에서 동작하므로 사용자는 동작 모습을 볼 수 없습니다. 추가 정보를 제공하거나 다시 로그인할 필요 없이, 아이콘이나 링크를 클릭하고 다른 앱을 열기만 하면 됩니다. 때때로 목적지는 사용자 속성이 도착할 때 그에 대한 정보를 이미 알고 있습니다.
SAML 및 XML
SAML은 XML 기반 프로토콜입니다. 즉 교환되는 정보 패키지가 XML로 작성됩니다. XML은 사람이 어느 정도는 판독할 수 있어서 무슨 일이 진행 중인지 파악할 수 있습니다. 제대로 작동하는지 확인하려고 한다면 이는 분명 좋은 소식입니다.
다음 다이어그램에는 SAML 어설션의 일부가 나와 있습니다. 무슨 의미인지 하나도 모르시겠나요? 다시 한 번 보시면, 전혀 이해를 못할 정도는 아닙니다. 여기에는 사용자의 사용자 이름, 전화번호, 이름이 포함되어 있습니다.
이 예시에서 Salesforce 조직은 사용자의 정보를 다른 애플리케이션에 전달합니다. 이 애플리케이션은 해당 정보를 사용하여 사용자에게 권한을 부여하고 사용자 경험을 개인화할 수 있습니다 하지만 가장 중요한 것은 사용자가 애플리케이션에 액세스하기 위해 다시 로그인할 필요가 없다는 사실입니다.
OAuth 2.0 프로토콜
다음은 몇 가지 예입니다.
- Salesforce 조직에서 연락처를 가져오는 모바일 앱은 OAuth를 사용합니다.
- 다른 서비스로부터 연락처를 받는 Salesforce 조직도 OAuth를 사용합니다.
다음은 OAuth 2.0을 사용하여 사용자에게 정보 액세스 권한을 요청하는 앱의 예입니다.
OpenID Connect 프로토콜
앱 개발자는 OpenID Connect 프로토콜을 사용하여 소셜사인온을 활성화합니다.
예를 들어 Google이 다른 서비스를 대신하여 사용자의 ID를 확인하는 것은 사용자를 인증하는 것입니다. 이런 면에서 Google은 ID 공급자입니다.
Salesforce는 Google, Facebook, LinkedIn을 비롯한 여러 주요 소셜 ID 공급자를 지원합니다. 특정 ID 공급자가 기본적으로 지원되지 않더라도 OpenID Connect 프로토콜을 구현하면 계속 사용할 수 있습니다(예: Amazon, PayPal).
OpenID Connect 프로토콜이 사용자에게 제공하는 이점은 별도의 계정, 사용자 이름, 비밀번호의 수를 줄일 수 있다는 것입니다. 한편, 개발자는 비밀번호 파일을 소유하고 관리할 필요 없이 웹사이트와 앱에서 사용자를 인증할 수 있습니다. 이러한 프로세스로 인해 해커가 사용자 계정에 침입하기가 매우 어렵습니다.
서비스 공급자와 ID 공급자
사용자는 ID 공급자에서 로그인한 후 Salesforce(서비스 공급자)로 리디렉션됩니다. 또 다른 모듈에서 여러분은 Salesforce를 서비스 공급자로 지정하고 타사 애플리케이션을 외부 ID 공급자로 지정하는 싱글사인온을 설정할 예정입니다.
ID 공급자로서의 Salesforce싱글사인온에 대한 SAML 플로
- 사용자가 Salesforce에 액세스하려고 시도합니다.
- Salesforce가 싱글사인온 요청을 인식하고 SAML 요청을 생성합니다.
- Salesforce가 SAML 요청을 브라우저로 다시 리디렉션합니다.
- 브라우저가 SAML 요청을 외부 ID 공급자로 리디렉션합니다.
- ID 공급자가 사용자의 ID를 확인하고 사용자 인증이 포함된 SAML 어설션을 패키징합니다.
- ID 공급자가 SAML 어설션을 브라우저에 전송합니다.
- 브라우저가 어설션을 Salesforce로 리디렉션합니다.
- Salesforce가 어설션을 확인합니다.
- 이제 사용자가 로그인하여 Salesforce에 액세스할 수 있습니다.
ID 용어 학습 테이블
용어 | 해당 용어와 혼동되는 용어 |
---|---|
인증은 사용자가 누구인지를 의미합니다. 오늘날 인증은 권한 부여 및 인증의 약어로 자주 사용됩니다. | 권한 부여는 사용자가 무엇을 할 수 있는지를 의미합니다. |
프로토콜은 시스템이 정보를 교환할 수 있도록 일련의 규칙을 지정합니다. 일반적으로 프로토콜과 표준이라는 용어는 같은 의미로 사용됩니다. | 표준은 사양, 즉 공급업체가 지원하기로 동의한 업계의 관행 집합입니다. 종종 표준에는 회사가 표준을 구현하는 방법을 지정하는 프로토콜이 포함됩니다. |
사용자 이름과 비밀번호는 사용자가 시스템에 로그인하기 위해 제공하는 것입니다. | 자격 증명도 기본적으로 그와 동일합니다. |
싱글사인온을 사용하면 한 번만 로그인하면 다시 로그인하지 않고도 다른 앱과 서비스에 액세스할 수 있습니다. | 소셜사인온을 사용하면 Google과 같은 SNS 계정으로 설정된 자격 증명을 사용하여 앱에 로그인할 수 있습니다. 해당 앱은 Google 자격 증명을 허용하며, 사용자는 다른 계정과 비밀번호를 만들 필요가 없습니다. |
ID 공급자는 사용자가 다시 로그인하지 않고도 다른 웹사이트 및 서비스에 액세스할 수 있도록 지원하는 신뢰할 수 있는 서비스입니다. | 서비스 공급자는 앱을 호스팅하고 ID 공급자의 ID를 수락하는 웹사이트 또는 서비스입니다. |