웹 응용 프로그램의 맥락에서 차이점은 무엇입니까? 나는 약어 "auth"를 많이 본다. 그것은 의미합니까 인증 -entication 또는 인증 -orization? 아니면 둘 다입니까?
authn
인증 및 authz
권한 부여를 위해 본 약어에 대해
웹 응용 프로그램의 맥락에서 차이점은 무엇입니까? 나는 약어 "auth"를 많이 본다. 그것은 의미합니까 인증 -entication 또는 인증 -orization? 아니면 둘 다입니까?
authn
인증 및 authz
권한 부여를 위해 본 약어에 대해
답변:
인증 은 누군가가 실제로 누구인지 주장하는 과정입니다.
권한 부여 는 누가 무엇을 할 수 있는지 결정하는 규칙을 말합니다. 예를 들어 Adam은 데이터베이스를 만들고 삭제할 수있는 반면 Usama는 읽기 권한 만 있습니다.
이 두 개념은 완전히 직교하고 독립적이지만 보안 설계의 중심에 있으며 두 가지 중 하나를 제대로 찾지 못하면 타협의 여지가 생깁니다.
웹 앱의 관점에서 볼 때 인증은 로그인 자격 증명을 확인하여 로그인 한 사용자를 인식하는지, 인증은 액세스 제어에서 사용자가보고, 편집하고, 삭제할 수 있는지 여부를 확인할 때입니다. 또는 컨텐츠를 작성하십시오.
간단히 말해주세요. :-)
인증 = 로그인 + 비밀번호 (본인)
권한 부여 = 권한 (허가 된 작업)
짧은 "auth"는 첫 번째 또는 두 가지를 가리킬 가능성이 높습니다.
로 인증 대 인증 을 넣습니다 :
인증 은 시스템이 사용자를 안전하게 식별 할 수있는 메커니즘입니다. 인증 시스템은 다음과 같은 질문에 대한 답변을 제공합니다.
- 사용자는 누구입니까?
- 사용자는 실제로 자신을 대표하는 사람입니까?
반대로 권한 부여 는 시스템이 특정 인증 된 사용자가 시스템에서 제어하는 리소스를 보호해야하는 액세스 수준을 결정하는 메커니즘입니다. 예를 들어, 데이터베이스 관리 시스템은 특정 개인에게 데이터베이스에서 정보를 검색 할 수 있지만 데이터베이스에 저장된 데이터를 변경하는 기능은 제공하지 않고 다른 개인에게는 데이터를 변경하는 기능을 제공하도록 설계 될 수 있습니다. 인증 시스템은 다음과 같은 질문에 대한 답변을 제공합니다.
- 사용자 X는 자원 R에 액세스 할 권한이 있습니까?
- 사용자 X에게 P 작업을 수행 할 권한이 있습니까?
- 사용자 X는 자원 R에 대해 P 작업을 수행 할 권한이 있습니까?
인증 및 권한 부여에 대한 확인 및 권한 을 선호합니다 .
머리와 코드에서 "확인"과 "권한"을 생각하기가 더 쉽습니다.
인증이 확인 중이고 권한 부여가 권한을 확인 중입니다. 인증은 둘 중 하나를 의미 할 수 있지만 "사용자 인증"즉 "사용자 인증"으로 더 자주 사용됩니다.
가장 간단한 단어로 이것을 설명하기 위해 이미지를 만들려고했습니다.
1) 인증은 "당신은 당신이 누구입니까?"
2) 승인은 "하고 싶은 일을 할 수 있는가?"를 의미합니다.
이것은 아래 이미지에도 설명되어 있습니다.
가능한 한 최상의 용어로 설명하려고 시도했으며 동일한 이미지를 만들었습니다.
인증 은 선언 된 신원을 확인하는 프로세스입니다.
일반적으로 authorization 다음에이 작업을 수행 할 수있는 승인이 이어집니다 .
@ Kerrek의 답변에 추가;
인증은 일반화 양식 (모든 직원이 컴퓨터에 로그인 할 수 있음)
권한 부여는 전문화 된 양식입니다 (그러나 관리자는 머신에서 애플리케이션을 설치 / 제거 할 수만 있습니다)
인증은 로그인 사용자 이름과 비밀번호를 확인하는 프로세스입니다.
권한 부여는 무언가에 액세스 할 수 있는지 확인하는 프로세스입니다.
인증 -당신은 당신이 주장하는 사람입니까?
승인 -당신이하려는 일을 할 권한이 있습니까?
웹앱은 Google 로그인을 사용합니다 . 사용자가 성공적으로 로그인하면 Google은 다음을 다시 보냅니다.
또한 :
회사에는 고객 지원 부서에서 회사의 사용자를 관리 할 수있는 관리 대시 보드가있을 수 있습니다. 고객 지원에서이 대시 보드에 액세스 할 수 있도록하는 맞춤형 가입 솔루션을 제공하는 대신 회사는 Google 로그인을 사용합니다.
사용자가 조직의 호스팅 도메인 (email@company.com)에 G Suite 계정 이 있는지 확인하기 위해 JWT 토큰 (Google 로그인 프로세스에서 수신)이 회사의 인증 서버로 전송 됩니까? 그렇다면 고객 지원을 위해 만들어진 회사의 Google 그룹 회원입니까? 위의 모든 사항에 예인 경우 인증 된 것으로 간주 할 수 있습니다 .
그런 다음 회사의 인증 서버는 대시 보드 앱에 액세스 토큰을 보냅니다. 이 액세스 토큰을 사용 하여 회사의 리소스 서버에 승인 된 요청을 할 수 있습니다 (예 : 회사의 모든 사용자를 다시 보내는 엔드 포인트에 GET 요청을하는 기능).