나는이 두 용어가 꽤 많이 (특히 웹 기반 시나리오에서 있지만 그것에 국한되지 않는다고 생각한다) 차이가 있는지 궁금해하는 것을 보았다.
둘 다 당신이하고있는 일을 할 수 있다는 것을 의미하는 것 같습니다. 그래서 이것은 단지 명명법입니까, 아니면 의미에 기본적인 차이가 있습니까?
나는이 두 용어가 꽤 많이 (특히 웹 기반 시나리오에서 있지만 그것에 국한되지 않는다고 생각한다) 차이가 있는지 궁금해하는 것을 보았다.
둘 다 당신이하고있는 일을 할 수 있다는 것을 의미하는 것 같습니다. 그래서 이것은 단지 명명법입니까, 아니면 의미에 기본적인 차이가 있습니까?
답변:
실제로 근본적인 차이가 있습니다. 인증은 시스템이 사용자를 안전하게 식별 할 수있는 메커니즘입니다. 인증 시스템은 다음 질문에 대한 답변을 제공합니다.
반대로 권한 부여는 특정 (인증 된) 사용자가 시스템이 제어하는 리소스에 대해 가져야하는 액세스 수준을 시스템이 결정하는 메커니즘입니다. 웹 기반 시나리오와 관련이있을 수도 있고 관련이 없을 수도있는 예를 들어, 데이터베이스 관리 시스템은 특정 지정된 개인에게 데이터베이스에서 정보를 검색 할 수있는 기능을 제공하지만 데이터베이스에 저장된 데이터를 변경하는 기능은 제공하지 않도록 설계 될 수 있습니다. 다른 개인에게 데이터를 변경할 수있는 기능을 제공합니다. 인증 시스템은 다음 질문에 대한 답변을 제공합니다.
스티브 라일리는 왜 그것들이 구별되어야하는지에 대한 아주 좋은 에세이 를 썼습니다 .
웹 사이트에서 사용자를 인증한다는 것은이 사용자가 유효한 사용자임을 확인하는 것입니다. 즉, 사용자가 사용자 이름 / 비밀번호 또는 인증서 등을 사용하고 있는지 확인하는 것입니다. 일반적으로 그 사람이 건물에 들어갈 수 있습니까?
승인은 사용자가 웹 사이트의 특정 리소스 또는 섹션에 액세스 할 수있는 권한 / 권한이 있는지 확인하는 프로세스입니다 (예 : CMS가 웹 사이트의 콘텐츠를 변경할 권한이있는 사용자 인 경우). 사무실 건물 시나리오의 경우 사용자가 사무실의 네트워크 룸에 들어갈 수 있는지 여부입니다.
인증 : 사용자가 누구인지 확인합니다.
인증을 위해 사용자는 사용자 이름 및 암호와 같은 자격 증명 정보를 제공하고 자격 증명이 유효한 경우 사용자는 인증 확인으로 향후 요청과 함께 보낼 수있는 토큰을받습니다.
권한 부여 : 사용자가 수행 할 수있는 작업을 결정합니다.
사용자의 관점에서, 성공적인 인증은 그녀가 시스템에 액세스하기위한 요청을 보내고 무언가 (예 : 시스템에 파일 업로드)를 할 수있을 때 발생하며 작동합니다.
인증은 신원 만 확인하며 사용자가 자신이 주장하는 신원임을 확인합니다. 인증은 확인 된 사용자가 액세스 할 수있는 리소스를 결정합니다.
권한 부여는 클라이언트가 리소스를 사용하거나 파일에 액세스 할 수있는 권한이 있는지 서버가 결정하는 프로세스입니다.
인증은 서버가 정보 또는 사이트에 액세스하는 사람을 정확히 알아야 할 때 사용됩니다.
나는 이것을 가장 간단한 말로 설명하기 위해 이미지를 만들려고 노력했다
1) 인증은 "당신은 당신이 누구입니까?"를 의미합니다.
2) 승인은 "당신이하려는 일을 할 수 있습니까?"를 의미합니다.
이것은 아래 이미지에서도 설명됩니다.
인증 :
신원이 참인지 거짓인지 확인하는 과정입니다. 즉, 사용자가 실제로 자신이라고 주장하는 사람인지 확인하는 것입니다.
인증 유형 :
OpenID 는 인증을위한 개방형 표준입니다.
권한 부여
주어진 ID 또는 역할을 가진 사용자가 액세스 할 수있는 리소스를 결정하는 기술입니다.
OAuth 는 인증 을위한 개방형 표준입니다.
인증 : 애플리케이션은 누가 애플리케이션에 액세스하고 있는지 알아야합니다. 따라서 인증은 누가 단어와 관련이 있습니다. 신청서는 로그인 양식으로 확인합니다. 사용자는 사용자 이름과 암호를 입력하고 이러한 입력은 응용 프로그램에서 유효성을 검사합니다. 유효성 검사에 성공하면 사용자가 인증 된 것으로 선언됩니다.
권한 은 사용자가 애플리케이션에 액세스 할 수 있는지 여부 또는 액세스 할 수있는 사용자와 액세스 할 수없는 사용자를 확인하는 것입니다. 출처 : Authentcation Vs Authorization
정의 또는 기술을 명시 적으로 지정하려는 나머지 응답과 비교합니다. 더 가치있는 예제를 제출하겠습니다.
여기에 여권과 자물쇠와 열쇠 를 매우 비유하는 기사가 있습니다.
인증 (AuthN이라고도 함) 에 대해 말할 때 ID에 대해 생각하십시오. 인증은 "이 사람이 자신이라고 말하는 사람입니까?"라고 대답하려고합니다. 여권이나 주민등록증에 해당하는 소프트웨어입니다. 또는 좀 더 현실적인 용어로 말하자면, 인증은 다른 사람의 얼굴을보고 성가신 2 층 이웃이 아니라 대학 친구임을 인식하는 그 순간과 유사한 과정입니다.
반면에 인증 (AuthZ라고도 함)은 권한에 관한 것입니다. 승인은 "이 사람이이 공간에서 무엇을 할 수 있습니까?"라는 질문에 대답합니다. 집 열쇠 또는 사무실 배지로 생각할 수 있습니다. 현관 문을 열 수 있습니까? 성가신 이웃이 마음대로 아파트에 들어갈 수 있습니까? 그리고 한 번 당신의 아파트에서 누가 화장실을 사용할 수 있습니까? 누가 당신의 부엌 찬장에 숨겨둔 당신의 비밀 쿠키를 먹을 수 있습니까?