인증과 권한 부여에 차이가 있습니까?


97

나는이 두 용어가 꽤 많이 (특히 웹 기반 시나리오에서 있지만 그것에 국한되지 않는다고 생각한다) 차이가 있는지 궁금해하는 것을 보았다.

둘 다 당신이하고있는 일을 할 수 있다는 것을 의미하는 것 같습니다. 그래서 이것은 단지 명명법입니까, 아니면 의미에 기본적인 차이가 있습니까?


3
예. 이 차이. 위키가 뭐라고? 148k로, 정말 지금 ;-) 내가 할 수 인증 없이 당신이 적 스파이 (또는 허가없이 개인) 것을 권한 부여 최고 비밀 데이터에 액세스 할 수 있습니다.

"정품"과 "승인"의 차이입니다. 도움이되지 않게 둘 다 "auth"로 축약됩니다. Apache는 "authn"과 "authz"로 구분합니다.
tc.

이것은 매우 간단하게 여기에 설명되어 있습니다 : serverfault.com/a/57082/227016
Kuldeep Jain

이것이 귀하의 질문에 대답합니까? 인증 대 승인
Løiten

답변:


141

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

  • 사용자는 누구입니까?
  • 사용자가 실제로 주장 / 대표하는 사람입니까?

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

  • 사용자 X는 리소스 R에 액세스 할 권한이 있습니까?
  • 사용자 X는 작업 P를 수행 할 권한이 있습니까?
  • 사용자 X는 자원 R에서 작업 P를 수행 할 권한이 있습니까?

스티브 라일리는 왜 그것들이 구별되어야하는지에 대한 아주 좋은 에세이 를 썼습니다 .


3
인증은 다른 것들에도 적용됩니다 (예 : MAC).
tc.

귀하가 제공하는 에세이는 훌륭합니다. 공유해 주셔서 감사합니다.
Abdel-Raouf

43

인증은 엔티티의 신원을 확인하는 것을 의미합니다. 인증은 인증 된 엔티티가 할 수있는 작업 (예 : 파일 권한)을 처리합니다.


12

요점은 다음과 같습니다.

  • 인증 은 사용자 계정 유효성 검사를 처리합니다. 유효한 사용자입니까? 이 사용자가 애플리케이션에 등록되어 있습니까?. 예 : 로그인
  • 인증 은 특정 기능에 대한 사용자 액세스 확인을 처리합니다. 이 사용자가이 기능에 액세스 할 수있는 권한 / 권한이 있습니까? 예 : 클레임, 역할

5

입증:

인증은 일종의 자격 증명을 얻고 해당 자격 증명을 사용하여 사용자의 신원을 확인하여 사용자의 신원을 확인하는 프로세스입니다. 자격 증명이 유효하면 권한 부여 프로세스가 시작됩니다. 인증 프로세스는 항상 인증 프로세스로 진행됩니다.

권한 부여:

인증은 사용자가 시스템에 대한 액세스 권한을 가지고 있는지 확인하여 인증 된 사용자가 리소스에 액세스 할 수 있도록 허용하는 프로세스입니다. 권한 부여는 인증 된 사용자에게 특정 권한을 부여하거나 거부하여 액세스 권한을 제어하는 ​​데 도움이됩니다.


2

내 경험상 인증은 일반적으로 사용자 인증 (로그인 / 비밀번호 자격 증명, 인증서 등을 확인)과 같은보다 기술적 프로세스를 의미하는 반면 인증은 애플리케이션의 비즈니스 로직에서 더 많이 사용됩니다.

예를 들어, 응용 프로그램에서 사용자는 로그인하여 인증을받을 수 있지만 특정 기능을 수행 할 권한이 없습니다.


1

웹 사이트에서 사용자를 인증한다는 것은이 사용자가 유효한 사용자임을 확인하는 것입니다. 즉, 사용자가 사용자 이름 / 비밀번호 또는 인증서 등을 사용하고 있는지 확인하는 것입니다. 일반적으로 그 사람이 건물에 들어갈 수 있습니까?

승인은 사용자가 웹 사이트의 특정 리소스 또는 섹션에 액세스 할 수있는 권한 / 권한이 있는지 확인하는 프로세스입니다 (예 : CMS가 웹 사이트의 콘텐츠를 변경할 권한이있는 사용자 인 경우). 사무실 건물 시나리오의 경우 사용자가 사무실의 네트워크 룸에 들어갈 수 있는지 여부입니다.


1

로그인 할 수있는 경우 내 자격 증명이 확인되고 인증됩니다. 특정 작업을 수행 할 수 있으면 그렇게 할 수있는 권한이 있습니다.


1

인증은 귀하가 누구인지 확인하고 승인은 귀하가 수행 할 수있는 권한을 확인합니다. 예를 들어 ssh 클라이언트를 통해 Unix 서버에 로그인 할 수 있지만 브라우저 / data2 또는 다른 파일 시스템에 대한 권한이 없습니다. 인증 성공 후 인증이 발생합니다 ........


0

인증은 귀하가 누구인지 확인하고 승인은 귀하가 수행 할 수있는 권한을 확인합니다. 예를 들어 ssh 클라이언트를 통해 Unix 서버에 로그인 할 수 있지만 브라우저 / data2 또는 다른 파일 시스템에 대한 권한이 없습니다. 인증에 성공하면 인증이 발생합니다.


0

인증 : 사용자가 누구인지 확인합니다.

인증을 위해 사용자는 사용자 이름 및 암호와 같은 자격 증명 정보를 제공하고 자격 증명이 유효한 경우 사용자는 인증 확인으로 향후 요청과 함께 보낼 수있는 토큰을받습니다.

권한 부여 : 사용자가 수행 할 수있는 작업을 결정합니다.

사용자의 관점에서, 성공적인 인증은 그녀가 시스템에 액세스하기위한 요청을 보내고 무언가 (예 : 시스템에 파일 업로드)를 할 수있을 때 발생하며 작동합니다.

인증은 신원 만 확인하며 사용자가 자신이 주장하는 신원임을 확인합니다. 인증은 확인 된 사용자가 액세스 할 수있는 리소스를 결정합니다.


0

입증

인증은 귀하가 누구인지 확인합니다. 예를 들어 ssh 클라이언트를 사용하여 서버에 로그인하거나 POP3 및 SMTP 클라이언트를 사용하여 이메일 서버에 액세스 할 수 있습니다.

권한 부여

승인은 귀하가 할 수있는 권한을 확인합니다. 예를 들어 ssh 클라이언트를 통해 서버에 로그인 할 수 있지만 브라우저 / data2 또는 다른 파일 시스템에 대한 권한이 없습니다. 인증에 성공하면 인증이 발생합니다.


0

권한 부여는 클라이언트가 리소스를 사용하거나 파일에 액세스 할 수있는 권한이 있는지 서버가 결정하는 프로세스입니다.

인증은 서버가 정보 또는 사이트에 액세스하는 사람을 정확히 알아야 할 때 사용됩니다.


0

간단한 실시간 예, 학생이 학교에 오면 교장이 인증 및 승인을 확인합니다. 인증 : 학생증을 확인하여 학생이 우리 학교에 속해 있는지 여부를 의미합니다. 승인 : 학생이 컴퓨터 프로그래밍 연구실에 앉을 수있는 권한이 있는지 확인합니다.


0

나는 이것을 가장 간단한 말로 설명하기 위해 이미지를 만들려고 노력했다

1) 인증은 "당신은 당신이 누구입니까?"를 의미합니다.

2) 승인은 "당신이하려는 일을 할 수 있습니까?"를 의미합니다.

이것은 아래 이미지에서도 설명됩니다.

여기에 이미지 설명 입력


2
게시물과 똑같은 텍스트로만 그림을 추가하는 이유는 무엇입니까? :)
Millenjo

0

인증 :

신원이 참인지 거짓인지 확인하는 과정입니다. 즉, 사용자가 실제로 자신이라고 주장하는 사람인지 확인하는 것입니다.

인증 유형 :

  1. 사용자 이름 + 비밀번호 인증 유형
  2. 소셜 계정을 사용한 인증
  3. 비밀번호없는 인증
  4. 다단계 인증
  5. 지문 또는 망막 기반 인증 등

OpenID 는 인증을위한 개방형 표준입니다.

권한 부여

주어진 ID 또는 역할을 가진 사용자가 액세스 할 수있는 리소스를 결정하는 기술입니다.

OAuth인증 을위한 개방형 표준입니다.


0

인증 : 애플리케이션은 누가 애플리케이션에 액세스하고 있는지 알아야합니다. 따라서 인증은 누가 단어와 관련이 있습니다. 신청서는 로그인 양식으로 확인합니다. 사용자는 사용자 이름과 암호를 입력하고 이러한 입력은 응용 프로그램에서 유효성을 검사합니다. 유효성 검사에 성공하면 사용자가 인증 된 것으로 선언됩니다.

권한 은 사용자가 애플리케이션에 액세스 할 수 있는지 여부 또는 액세스 할 수있는 사용자와 액세스 할 수없는 사용자를 확인하는 것입니다. 출처 : Authentcation Vs Authorization


0

정의 또는 기술을 명시 적으로 지정하려는 나머지 응답과 비교합니다. 더 가치있는 예제를 제출하겠습니다.

여기에 여권과 자물쇠와 열쇠 를 매우 비유하는 기사가 있습니다.

인증 (AuthN이라고도 함) 에 대해 말할 때 ID에 대해 생각하십시오. 인증은 "이 사람이 자신이라고 말하는 사람입니까?"라고 대답하려고합니다. 여권이나 주민등록증에 해당하는 소프트웨어입니다. 또는 좀 더 현실적인 용어로 말하자면, 인증은 다른 사람의 얼굴을보고 성가신 2 층 이웃이 아니라 대학 친구임을 인식하는 그 순간과 유사한 과정입니다.

반면에 인증 (AuthZ라고도 함)은 권한에 관한 것입니다. 승인은 "이 사람이이 공간에서 무엇을 할 수 있습니까?"라는 질문에 대답합니다. 집 열쇠 또는 ​​사무실 배지로 생각할 수 있습니다. 현관 문을 열 수 있습니까? 성가신 이웃이 마음대로 아파트에 들어갈 수 있습니까? 그리고 한 번 당신의 아파트에서 누가 화장실을 사용할 수 있습니까? 누가 당신의 부엌 찬장에 숨겨둔 당신의 비밀 쿠키를 먹을 수 있습니까?

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