특정 사용 권한 집합이 주어집니다. EditPage, CreateProject, ModifyUser 현재이 동작을 모델링하기 위해 몇 가지 사용자 지정 클레임 유형을 만드는 두 가지 방법을 찾고 있습니다. 이 작업을 수행하고 자신의 시스템에서이 작업을 어떻게 수행했는지에 대한 피드백을 얻기 위해 온라인으로 정보를 거의 찾을 수 없습니다.사용자 지정 클레임 유형을 만들기위한 모범 사례
가var claims = new []
{
new Claim("http://schemas.company.com/claims/project/action", "EditPage"),
new Claim("http://schemas.company.com/claims/project/action", "CreateProject"),
new Claim("http://schemas.company.com/claims/project/action", "ModifyUser")
}
번째 방법은 제 타입 자체를 사용하는 것이다
는I 간주 한 첫 번째 방법은 청구항의 값에 의해 지정된 특정 조치로하는 "동작"제 종류를 사용하는 수행중인 동작을 정의하기 위해 값은 사용되지 않습니다. 이것은 사용자가 claimtype을 가지고있는 한 조치를 수행 할 수있는 "PossessProperty"보안 스타일과 같습니다. 나는 "프로젝트"판별을 포함 시켰 위에 내가 프로젝트 (A)에 페이지를 편집 할 수 있지만 프로젝트 B.
할 수있는 사용자를 구별 할 수 있도록
var claims = new []
{
new Claim("http://schemas.company.com/claims/project/editpage", ""),
new Claim("http://schemas.company.com/claims/project/createproject", ""),
new Claim("http://schemas.company.com/claims/project/modifyuser", "")
}
또한 클레임 유형에주의 우리 또한 이러한 모든 사용자 지정 클레임을 중앙의 "권한 부여"데이터베이스에 저장하기 때문에 독창성이 필요합니다.
의견이나 의견을 크게 주시면 감사하겠습니다.
감사합니다. 귀하가이 문제에 답변하기를 바랍니다. 나는 Pluralsight 비디오를 매우 즐겼다. 실제로 ClaimsAuthorizationManager를 사용하고 있지만 아직 정책 구현을 시작하지 않았습니다. 요구 사항은 매우 세밀한 보안 수준을 가지므로 특정 동작을 수행 할 수있는 특정 권한이 사용자에게 부여됩니다 (예 : 이미지 업로드, 페이지 수정 등을 할 수 있습니다. 특정 권리/행동/권한이 각각의 주장으로 모델링 될 것이라고 생각했습니다. 그러나 당신은 그것이 반 패턴이라고 말하고 있습니다. 이 세세한 보안은 모두 안티 패턴입니까? 나는 지금 더 혼란 스럽다. – mikesigs
아니요 전혀 아님)이 모든 소유권 주장을 ClaimsPrincipal의 일부로 삼지 마십시오. – leastprivilege
"조치"클레임은 더 이상 클레임이 아닙니다. 클레임 변환 중에는 ClaimsPrincipal에 저장되지 않습니다. 그러나 인증 관리자는 일부 서비스 호출/db 조회를 통해 특정 사용 권한을 확인해야합니다. 정적 인 정책 집합을 원했지만이 모델에서는 작동하지 않습니다. – mikesigs