source

ASP의 주장은 무엇입니까?NET 아이덴티티

lovecheck 2023. 5. 2. 22:46
반응형

ASP의 주장은 무엇입니까?NET 아이덴티티

누가 새로운 ASP에서 클레임 메커니즘이 무엇을 의미하는지 설명해 주시겠습니까?NET 아이덴티티 코어?

볼 수 , 제가볼수있, 거에는이가 .AspNetUserLogins표, 다을포니다가 되어 있습니다.UserId,LoginProvider그리고.ProviderKey.

, 데이터가 언제 에 대한 를 찾을 수도 .AspNetUserClaims테이블과 이 테이블은 어떤 상황에 사용됩니까?

클레임 메커니즘이 새로운 ASP에서 의미하는 것은 무엇입니까?NET 아이덴티티 코어?

역할 및 클레임을 기반으로 하는 두 가지 일반적인 권한 부여 방법이 있습니다.

역할 기반 보안

사용자는 하나 이상의 역할에 할당되며 이 역할을 통해 사용자가 액세스 권한을 얻습니다.또한 사용자를 역할에 할당하면 사용자는 해당 역할에 대해 정의된 모든 액세스 권한을 즉시 얻게 됩니다.

클레임 기반 보안

클레임 기반 ID는 클레임 집합입니다.클레임은 기업(사용자 또는 다른 애플리케이션)이 자신에 대해 제기하는 진술이며, 단순한 클레임입니다.예를 들어 클레임 목록에는 사용자의 이름, 사용자의 전자 메일, 사용자의 나이, 작업에 대한 사용자의 권한이 있을 수 있습니다.역할 기반 보안에서 사용자는 자격 증명을 응용 프로그램에 직접 표시합니다.클레임 기반 모델에서 사용자는 클레임을 제시하고 응용프로그램에 대한 자격 증명을 제시하지 않습니다.클레임이 실질적인 가치를 가지려면 애플리케이션이 신뢰하는 엔티티에서 클레임을 가져와야 합니다.

아래 단계에서는 클레임 기반 보안 모델에서 발생하는 일련의 작업을 설명합니다.

  1. 사용자가 작업을 요청합니다.RP(의존 당사자) 응용 프로그램이 토큰을 요청합니다.
  2. 사용자는 RP 응용 프로그램이 신뢰하는 발급 기관에 자격 증명을 제공합니다.
  3. 발급 기관은 사용자의 자격 증명을 인증한 후 클레임이 포함된 서명된 토큰을 발급합니다.
  4. 사용자는 토큰을 RP 응용프로그램에 표시합니다.응용 프로그램은 토큰 서명의 유효성을 검사하고 클레임을 추출하며 클레임에 따라 요청을 수락하거나 거부합니다.

하지만 여전히 AsNetUserClaims에 데이터가 추가되는 시점과 이 표가 어떤 상황에 사용되는지 이해하고 찾을 수 없습니다.

역할 기반 보안을 사용하지 않고 클레임 기반 보안을 사용하기로 선택한 경우 AsNetUserClaims 테이블을 사용해야 합니다.ASP에서 클레임을 사용하는 방법.NET Identity. 자세한 내용은 아래 링크를 참조하십시오.

http://kevin-junghans.blogspot.com/2013/12/using-claims-in-aspnet-identity.html

갱신하다

역할 기반 보안을 사용해야 하는 시간과 클레임 기반을 사용해야 하는 시간은 언제입니까?몇 가지 예를 써 주시겠습니까?

B가 아닌 A를 사용하는 경우와 달리 역할 기반 또는 클레임 기반 보안을 사용하거나 사용하지 않을 경우가 매우 명확하지 않습니다.

그러나 클레임 기반 액세스 제어를 사용하면 권한 부여 규칙을 핵심 비즈니스 로직과 더 잘 분리할 수 있습니다.권한 부여 규칙이 변경되어도 핵심 비즈니스 로직은 영향을 받지 않습니다.클레임 기반 접근 방식을 사용하는 것이 더 좋을 수도 있습니다.

때때로 청구가 필요하지 않습니다.이것은 중요한 고지 사항입니다.다수의 내부 애플리케이션을 보유한 기업은 통합 윈도우즈 인증을 사용하여 클레임이 제공하는 많은 이점을 얻을 수 있습니다.Active Directory는 사용자 ID를 저장하는 데 유용하며 Kerberos는 Windows의 일부이기 때문에 응용 프로그램에 인증 로직이 많이 포함되지 않아도 됩니다.빌드하는 모든 응용 프로그램이 통합 윈도우즈 인증을 사용할 수 있는 한 이미 ID 유토피아에 도달했을 수 있습니다.그러나 Windows 인증이 아닌 다른 인증이 필요한 이유는 여러 가지가 있습니다.Windows 도메인에 계정이 없는 사용자가 사용하는 웹 기반 응용 프로그램이 있을 수 있습니다.또 다른 이유는 회사가 다른 회사와 합병되어 신뢰 관계가 없는 두 개의 Windows 포리스트에서 인증하는 데 문제가 있기 때문일 수 있습니다.아마도 당신은 그렇지 않은 다른 회사와 정체성을 공유하고 싶을 것입니다.NET Framework 응용 프로그램 또는 다른 플랫폼(예: Macintosh)에서 실행되는 응용 프로그램 간에 ID를 공유해야 합니다.이러한 상황에서 클레임 기반의 아이덴티티가 귀사에 적합한 선택이 될 수 있습니다.

자세한 내용은 http://msdn.microsoft.com/en-us/library/ff359101.aspx 을 참조하십시오.

@Lin이 위에서 말한 것에 대해 더 추가하려고 합니다.저는 특히 다음과 같은 질문을 언급하고 있습니다.

역할 기반 보안을 사용해야 하는 시간과 클레임 기반을 사용해야 하는 시간은 언제입니까?몇 가지 예를 써 주시겠습니까?

이 답변에 더 많은 정보를 추가해야 했는데, 이는 클레임 기반 인증 모델과 역할 기반 인증 모델 간의 구분을 명확하게 다루지 않았기 때문입니다.Microsoft Docs에서 제시되고 문서화된 경험과 개념 자체의 특성을 바탕으로 두 가지 인증 모델이 함께 사용되는 경우가 많으며, 아래의 예 3에 이러한 모델이 함께 사용되는 경우에 대한 예가 나와 있습니다.이제 다음 주제에 대해 자세히 설명하겠습니다.

클레임 기반 인증:

한 가지 중요한 점은 클레임 기반 인증은 역할 기반 인증과 비교하여 기본적으로 타사 인증으로 제한된다는 것입니다.클레임은 사용자를 설명하는 타사 응용 프로그램에서 사용자(사용자의 응용 프로그램)에게 제공하는 정보입니다.이 정보는 모든 유형의 데이터일 수 있습니다.예를 들어 보겠습니다.

예 1:

노래를 섞는 데 사용되는 소프트웨어 앱이 있다고 상상했습니다.그리고 이 앱은 기본적으로 Spotify나 YouTube Music 플랫폼 등의 노래를 사용하지만, 플랫폼의 음악 라이브러리에 완전히 액세스할 수 있는 방식으로 구축되었습니다.하지만 이 앱은 Spotify나 Google 계정으로 로그인할 필요가 없으며 기본적으로 이메일과 비밀번호로 등록하면 됩니다.그러나 온라인 상태가 된 후 Spotify 또는 YouTube 음악의 음악을 사용하려면 스포티파이 또는 YouTube 음악 계정을 만드는 데 사용한 전자 메일 주소를 입력해야 합니다.그런 다음 앱은 웹 서비스를 통해 해당 타사 앱에 가입 계정 번호를 요청하고 클레임으로 저장합니다.따라서 온라인 상태에서 음악에 액세스하려고 할 때마다 앱은 등록된 클레임의 정책을 사용하여 가입 계정이 있는지 확인한 다음 액세스를 허용합니다.이것의 좋은 점은 클레임이 어디에서 발생했는지 저장하는 발행인과 같은 정보와 함께 클레임이 저장된다는 것입니다.그리고 그게 다야.타사에서 제공한 청구, 즉 자신의 입장을 설명하는 구독 계정 번호를 사용했습니다.분명히, 이것은 이런 종류의 앱을 다루기에 가장 좋은 모델은 아닐 것이지만, 예로 충분합니다.다른 타사 응용 프로그램에서 요청한 사용자에 대한 일부 정보를 기반으로 사용자에게 권한을 부여하는 것입니다.

역할 기반 인증:

여기 있는 것은 충분히 분명합니다.가장 간단한 방법은 사용자의 역할과 역할에 따라 사용자에게 액세스 권한을 부여하는 것입니다.

예 2:

서로 다른 위치의 여러 사용자가 있는 조직 앱을 상상해 보십시오.위치에 따라 사용자에게 역할을 할당하고 역할에 따라 다른 정보에 대한 액세스 권한을 부여할 수 있습니다.관리자, 소유자, 직원…기본적으로 모든 직원이 관리자와 소유자가 액세스할 수 있는 모든 항목에 액세스할 수 있는 것은 아닙니다.이는 관리자와 소유자에게 적용됩니다.관리자는 소유자에게만 속하는 일부 정보에 대한 액세스 권한이 부여되지 않습니다.그 정도로 간단합니다.

이 모든 것을 종합하면:

ERP 시스템과 같은 애플리케이션에서는 클레임과 역할을 함께 사용하여 복잡한 인증 모델을 구축합니다.저는 항상 현재의 아이덴티티 프레임워크가 매우 완전하기 때문에 기존 모델을 방해하는 불필요한 확장이 필요하지 않은 경우가 많다고 말할 것입니다. 분명히 필요한 것이 다를 수 있으며 때로는 모델을 해체하는 것이 유일한 옵션일 수 있습니다.역할과 클레임을 함께 사용하면 클레임이 권한 역할을 합니다.그것이 당신이 가지고 있는 이유입니다.RoleClaim그리고.UserClaim모형 내의 표입니다.즉, 권한을 역할 자체를 넘어 확장할 수 있습니다.클레임이 역할과 함께 사용되는 경우 클레임은 특정 작업을 수행하기 위한 액세스 권한만 제공합니다.

예 3:

기술자와 관리자가 있는 크로킹 시스템을 사용하는 경우를 생각해 보십시오.기술자는 매주 말에 해당 주 동안 작업한 장인의 작업 시간을 보여주는 기록 정보가 포함된 보고서를 준비해야 합니다. 이 정보는 급여로 통합되어 사용됩니다.이러한 시스템은 종종 최종 보고서가 제출되기 전에 수정 또는 수정되어야 합니다. 직원들에게 과도한 임금을 주거나 낮은 임금을 지급하는 것을 원하지 않기 때문입니다.를 사용할 수 있습니다.Role-Based 방식으로 합니다.Manager Role그리고.Technician Role 그데그런.Manager Role장인의 크로킹 정보에 액세스하고 편집할 수 있는 기능이 있습니다.반면에, 당신은 그것을 가질 수 있습니다.Technician Role 여기 흥미로운 부분이 있습니다; 관리자는 클레임을 제기하고 할 수 하지만 여기 흥미로운 부분이 있습니다. 관리자는 클레임을 제기하고 정비사가 클로킹 시스템에 액세스하여 보고서를 작성할 수 있도록 허용할 수 있습니다.따라서 클레임은 편집자 없이 액세스에 대해서만 수행할 수 있고 액세스 및 편집 기능을 통해 수행할 수 있습니다.기억하세요, 오직 당신의 앱만이 당신의 주장이 의미하는 것을 이해합니다.그들은 무엇이든 이름을 붙일 수 있습니다.GrantWriteAccess,GrantReadAccess등, 당신을 제한하는 것은 아무것도 없습니다.클레임을 사용 권한으로 미리 정의한 후에는 해당 클레임을 사용자와 연결하기만 하면 됩니다.이 경우 정비사는 두 가지 기능을 모두 사용할 수 있습니다.GrantWriteAccess그리고. GrantReadAccess그들의 에 UserClaim

이는 관리자로서 기본적으로 기술자가 액세스할 수 없는 일부 정보에 액세스할 수 있습니다.하지만 제가 항상 사무실 근처에 있는 것은 아니죠?제가 없을 때에도 그가 여전히 그 일을 할 수 있도록 제가 무엇을 할 수 있을까요?이를 해결하기 위해 시스템은 관리자가 일부 특정 정보에 액세스하지 않고도 사용자에 대한 클레임(권한)을 생성할 수 있는 기능을 제공할 수 있습니다.우리는 ERP 시스템 어디에서나 이러한 것들을 자주 볼 수 있습니다.일부 모듈에 대한 액세스 권한이 없는 사용자는 승격 시 ERP 시스템의 더 많은 모듈에 대한 권한이 부여되며, 때로는 동일한 사용자 역할을 유지하고 일부 권한만 열립니다.

여기 ASP의 꽤 간단한 설명이 있습니다.NET 문서:

ID가 생성되면 신뢰할 수 있는 당사자가 발급한 하나 이상의 클레임을 할당할 수 있습니다.클레임은 제목이 수행할 수 있는 작업이 아니라 제목이 무엇인지 나타내는 이름 값 쌍입니다.예를 들어, 지역 운전면허 기관에서 발급한 운전면허증이 있을 수 있습니다.운전면허증에는 생년월일이 적혀 있습니다.이 경우 클레임 이름은 DateOfBirth이고 클레임 값은 귀하의 생년월일입니다(예: 1970년 6월 8일). 발급자가 운전면허 기관입니다.클레임 기반 권한 부여는 가장 간단한 방법으로 클레임 값을 확인하고 해당 값을 기반으로 리소스에 액세스할 수 있도록 합니다.

그런 다음 우리 모두가 거의 이해할 수 있는 예를 제시합니다.

예를 들어 나이트 클럽에 액세스하려는 경우 권한 부여 프로세스는 다음과 같습니다.도어 보안 담당자는 귀하의 생년월일 청구의 가치와 발급자(운전면허 기관)를 신뢰하는지 여부를 평가한 후 귀하에게 접근 권한을 부여합니다.

따라서 언제 클레임 기반 보안을 사용해야 하는지에 대한 질문에 답하려면, 사람들을 제대로 정의된 역할에 배치하는 것이 쉽지 않을 때가 답입니다.예를 들어 나이트클럽 시나리오에서는 고객을 역할에 투입하기가 너무 어렵기 때문에 ID(운전면허증 등)로 확인된 연령에 따라 클레임 기반 액세스 제어를 사용합니다.그러나 동일한 나이트클럽 시나리오에서 역할 기반 보안을 사용하여 사용자가 어떤 룸에 액세스할 수 있는지를 제어할 수 있습니다(예: "직원 전용" 룸에 키 카드 사용).요구 사항에 따라 클레임 기반 보안과 역할 기반 보안을 혼합할 수 있습니다.

ASP에는 두 가지 유형의 인증이 있습니다.넷 아이덴티티.

  1. 역할 기반
  2. 클레임 기반

둘 중 하나를 동시에 사용하거나 둘 다 사용할 수 있습니다.매우 정의된 항목이 있는 경우 역할 기반을 사용합니다.예를 들어, 선생님과 학생의 두 역할을 만듭니다.선생님만이 과목을 추가할 수 있습니다.그래서 과목을 추가할 수 있는 권한을 가진 사용자에게 교사 역할을 할당했습니다.

클레임 기반이 보다 유연합니다.일부 학생들이 과목을 추가할 수 있는 요구 사항이 있다고 가정합니다.이 경우 학생이 될 수 있는 역할을 하나 더 생성하고 주제를 추가할 수 있는 액세스 권한을 부여해야 합니다.하지만 당신이 클레임 기반을 사용한다면 매우 쉬울 것입니다.addSubject와 같은 클레임을 만들고 객체를 추가하기 위해 액세스하려는 사용자에게 할당하기만 하면 됩니다.

언급URL : https://stackoverflow.com/questions/21645323/what-is-the-claims-in-asp-net-identity

반응형