인증 대 권한


626

웹 응용 프로그램의 맥락에서 차이점은 무엇입니까? 나는 약어 "auth"를 많이 본다. 그것은 의미합니까 인증 -entication 또는 인증 -orization? 아니면 둘 다입니까?


51
이것을 기억하십시오 : 인증은 자격 증명을 확인하고 권한 부여는 권한을 확인합니다.
Onur Yıldırım

1
교차 사이트 복제 : serverfault.com/q/57077
Kyll

최근 authn인증 및 authz권한 부여를 위해 본 약어에 대해
jdf

이것이 귀하의 질문에 대답합니까? 인증과 권한 부여에 차이가 있습니까?
paxdiablo

답변:


864

인증 은 누군가가 실제로 누구인지 주장하는 과정입니다.

권한 부여 는 누가 무엇을 할 수 있는지 결정하는 규칙을 말합니다. 예를 들어 Adam은 데이터베이스를 만들고 삭제할 수있는 반면 Usama는 읽기 권한 만 있습니다.

이 두 개념은 완전히 직교하고 독립적이지만 보안 설계의 중심에 있으며 두 가지 중 하나를 제대로 찾지 못하면 타협의 여지가 생깁니다.

웹 앱의 관점에서 볼 때 인증은 로그인 자격 증명을 확인하여 로그인 한 사용자를 인식하는지, 인증은 액세스 제어에서 사용자가보고, 편집하고, 삭제할 수 있는지 여부를 확인할 때입니다. 또는 컨텐츠를 작성하십시오.


32
정의는 괜찮아 보이지만 확실히 독립적 인 것처럼 보이지는 않습니다. 정의 된 바와 같이 권한 부여인증의미 하지 않습니까? 당신은 그가 의심하는 경우 어떻게 아담의 데이터베이스 삭제 작업을 허용 할 수 있다 아담? 다르게 말하면, Adam의 삭제 작업이 승인되면 Adam이 인증되었음을 나타냅니다.
Timo

7
@Timo : 응용 프로그램은 아마도 두 가지 모두를 원하지만 아마도 직교 개념입니다. 상사는 CCTV 피드의 특정 개인이 스프레드 시트의 이름과 일치하지 않아도 비즈니스의 중요한 구성 요소, 회사 제트기 및 맥주 냉장고에 액세스 할 수있는 직원의 권한을 검토 할 수 있습니다. 후자는 경비원의 관심사입니다.
Kerrek SB

1
개념은 확실히 직교합니다. 인증이 반드시 신원을 증명하는 것은 아닙니다. 나이와 같은 자신에 대한 주장을 증명할 수 있습니다. 술을 마시면 신분증을 보여줌으로써 나이를 인증 할 수 있습니다. 그럼 당신은 당신의 나이와 당신에있는 관할 구역에 따라 술을 허가 할 수있다 (당신이 유럽에서 미국의 경우> 21> 18 마실 수)
데이비드 브로사드

1
@Sinjai : 요점은 그것들이 직교적인 관심사이며 별도의 시설에서 해결할 수 있다고 생각합니다. 한도는 모두이지만 경비원이 얻은 값을 사용하여 입학 결정을 내립니다.
Kerrek SB

1
그것을 보는 또 다른 방법은 (바텐더 예와 관련하여) 인증은 ID 카드의 사진을 당신 앞에 서있는 사람과 일치시키는 과정이고 인증은 나이를 확인하는 과정이라는 것을 고려하는 것입니다 법적 요구 사항을 충족합니다. 내 의견으로는,이 혼합에서 선이 흐려지는 요소는 대부분의 사람들이 인증의 문제로 간주하는 경향이있는 두 가지 테스트 모두 위조에 대해 인식하고 강화해야한다는 것입니다 (ID는 가짜 임) auth-c 및 auth-z 인증 모두에 똑같이 중요합니다.
Ryan Hansen

660

간단히 말해주세요. :-)

인증 = 로그인 + 비밀번호 (본인)

권한 부여 = 권한 (허가 된 작업)

짧은 "auth"는 첫 번째 또는 두 가지를 가리킬 가능성이 높습니다.


3
:) 케이크의 조각처럼 달콤한
devansvd

나는 짧고 달콤합니다.

5
그런 다음 여전히 HTTP Authorization 헤더 가 인증 정보를 전달 하는 이유를 이해하지 못합니다 ... 불행한 이름이 아닙니까?
Jens

@Jens 짧은 답변 : 예. 로이 필딩은 ... ;-) </ 놀림조>보다 그 시간에 알고하지 않았다
당 룬드

@Jens 나도 궁금합니다. 나는 발견 이 답변의 직관이 도움이. HTTP는 stateless 이므로 시작 및 종료 요청뿐만 아니라 모든 요청과 함께 인증 정보를 전송해야합니다 (예 : 보안 세션 설정 및 사이에 인증없이 요청 전송). 따라서 요청 헤더는 인증이 아닌 거의 항상 다른 의도 (데이터 가져 오기, img, ...)를 전달하기 때문에 권한 부여 여야 합니다 .
Minh Nghĩa

83

인증 대 인증 을 넣습니다 :

인증 은 시스템이 사용자를 안전하게 식별 할 수있는 메커니즘입니다. 인증 시스템은 다음과 같은 질문에 대한 답변을 제공합니다.

  • 사용자는 누구입니까?
  • 사용자는 실제로 자신을 대표하는 사람입니까?

반대로 권한 부여 는 시스템이 특정 인증 된 사용자가 시스템에서 제어하는 ​​리소스를 보호해야하는 액세스 수준을 결정하는 메커니즘입니다. 예를 들어, 데이터베이스 관리 시스템은 특정 개인에게 데이터베이스에서 정보를 검색 할 수 있지만 데이터베이스에 저장된 데이터를 변경하는 기능은 제공하지 않고 다른 개인에게는 데이터를 변경하는 기능을 제공하도록 설계 될 수 있습니다. 인증 시스템은 다음과 같은 질문에 대한 답변을 제공합니다.

  • 사용자 X는 자원 R에 액세스 할 권한이 있습니까?
  • 사용자 X에게 P 작업을 수행 할 권한이 있습니까?
  • 사용자 X는 자원 R에 대해 P 작업을 수행 할 권한이 있습니까?

또한보십시오:


34

인증 및 권한 부여에 대한 확인권한 을 선호합니다 .

머리와 코드에서 "확인"과 "권한"을 생각하기가 더 쉽습니다.

  • 똑같이 들리지 않는다
  • 같은 약어가 없습니다

인증이 확인 중이고 권한 부여가 권한을 확인 중입니다. 인증은 둘 중 하나를 의미 할 수 있지만 "사용자 인증"즉 "사용자 인증"으로 더 자주 사용됩니다.


2
IMHO 인증은 인증보다 약간 더 넓은 범위를 가지고있는 것 같습니다. 인증은 일종의 확인 인 것처럼 보이지만 모든 확인이 인증은 아닙니다 ... 그래서 항상 사용자 액세스 확인 등의 컨텍스트가 필요하다고 말합니다. "그는 정말 사람 / 기계입니까?"의 분야에서 항상 발생하는 것 같습니다 (내가 모국어가 아닌 내가 틀렸다면 연락해주십시오. "제공된"정보가 정확한지 대 인증이 "확인"은 사람 / 기계가 자신이 가장 한 것으로 알고있는 것과 관련이있는 것으로 보입니다.
Beachwalker

14

두 단어가 비슷하게 들리고 개념이 밀접하게 관련되어 있고 함께 사용되기 때문에 혼란을 이해할 수 있습니다. 또한 언급했듯이 일반적으로 사용되는 약어 Auth 는 도움이되지 않습니다.

다른 사람들은 이미 인증 및 권한 부여의 의미를 잘 설명했습니다. 다음은 두 가지를 명확하게 구분하는 데 도움이되는 간단한 규칙입니다.

  • 인증 enti 양이온의 유효성을 검사 아이디 enti 타이 (또는 진위 , 당신이 선호하는 경우)
  • 저자 화하여 유효성을 검사 저자의 성만, 액세스, 즉 오른쪽 가능성이 변경 뭔가를.

12

가장 간단한 단어로 이것을 설명하기 위해 이미지를 만들려고했습니다.

1) 인증은 "당신은 당신이 누구입니까?"

2) 승인은 "하고 싶은 일을 할 수 있는가?"를 의미합니다.

이것은 아래 이미지에도 설명되어 있습니다.

여기에 이미지 설명을 입력하십시오

가능한 한 최상의 용어로 설명하려고 시도했으며 동일한 이미지를 만들었습니다.


4

인증 은 선언 된 신원을 확인하는 프로세스입니다.

  • 예 : 사용자 이름 / 암호

일반적으로 authorization 다음에이 작업을 수행 할 수있는 승인이 이어집니다 .

  • 예를 들어 권한

이 답변은 이미 깊이 설명되어 있습니다.
Sonu patel

3

@ Kerrek의 답변에 추가;

인증은 일반화 양식 (모든 직원이 컴퓨터에 로그인 할 수 있음)

권한 부여는 전문화 된 양식입니다 (그러나 관리자는 머신에서 애플리케이션을 설치 / 제거 할 수만 있습니다)


1
"수"라는 단어는 승인에만 적용됩니다. 인증은 로그인과 거의 관련이 없습니다. 사용자 이름 / 비밀번호뿐만 아니라 다양한 방식으로 Boobalan임을 인증 할 수 있습니다. 내가 인증하고 귀하가 누구인지 알게되면, 귀하가 로그인하거나 내 사이트에서 어떤 작업을 수행 할 권한이 없습니다. 귀하는 인증을 받았지만 diddley-squat를 수행 할 수 없습니다. 인증에 대해 말할 때 "can"이라는 단어를 사용하는 것은 혼란스럽고 잘못되었습니다.
Suamere

3

인증은 로그인 사용자 이름과 비밀번호를 확인하는 프로세스입니다.

권한 부여는 무언가에 액세스 할 수 있는지 확인하는 프로세스입니다.


3
이 "답변"은 이미 주어진 답변에 아무 것도 추가하지 않습니다.
Ojonugwa Jude Ochalifu

1

정의

인증 -당신은 당신이 주장하는 사람입니까?

승인 -당신이하려는 일을 할 권한이 있습니까?

웹앱은 Google 로그인을 사용합니다 . 사용자가 성공적으로 로그인하면 Google은 다음을 다시 보냅니다.

  1. JWT 토큰. 인증 정보 를 얻기 위해 유효성을 검사하고 디코딩 할 수 있습니다 . Google에서 서명 한 토큰입니까? 사용자 이름과 이메일은 무엇입니까?
  2. 액세스 토큰. 이 권한을 부여 사용자를 대신하여 액세스 구글 API에 웹 응용 프로그램을. 예를 들어 앱이 사용자의 Google 캘린더 이벤트에 액세스 할 수 있습니까? 이러한 권한은 요청한 범위와 사용자가 허용 한 범위에 따라 다릅니다.

또한 :

회사에는 고객 지원 부서에서 회사의 사용자를 관리 할 수있는 관리 대시 보드가있을 수 있습니다. 고객 지원에서이 대시 보드에 액세스 할 수 있도록하는 맞춤형 가입 솔루션을 제공하는 대신 회사는 Google 로그인을 사용합니다.

사용자가 조직의 호스팅 도메인 (email@company.com)에 G Suite 계정 이 있는지 확인하기 위해 JWT 토큰 (Google 로그인 프로세스에서 수신)이 회사의 인증 서버로 전송 됩니까? 그렇다면 고객 지원을 위해 만들어진 회사의 Google 그룹 회원입니까? 위의 모든 사항에 예인 경우 인증 된 것으로 간주 할 수 있습니다 .

그런 다음 회사의 인증 서버는 대시 보드 앱에 액세스 토큰을 보냅니다. 이 액세스 토큰을 사용 하여 회사의 리소스 서버에 승인 된 요청을 할 수 있습니다 (예 : 회사의 모든 사용자를 다시 보내는 엔드 포인트에 GET 요청을하는 기능).


0

Authentication 확인 과정입니다.

  • 증명 (비밀 키, 생체 인식, SMS ...)을 제공하여 시스템의 사용자 ID (사용자 이름, 로그인, 전화 번호, 이메일 ...) 확장으로서의 다단계 인증.
  • 사용하여 이메일 확인 digital signature
  • 체크섬

Authorization다음 단계 Authentication입니다. 리소스에 대한 권한 / 역할 / 권한에 관한 것입니다. OAuth (공개 인증)는 인증의 예입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.