>백엔드 개발 >PHP 튜토리얼 >Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

黄舟
黄舟원래의
2017-01-18 09:14:003314검색

Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

1. Shiro란 무엇인가

Apache Shiro는 인증, 권한 부여 기능을 제공하는 강력하고 사용하기 쉬운 Java 보안 프레임워크입니다. , 암호화 및 세션 관리 및 기타 기능:

인증 - 사용자 "로그인"이라고도 함
인증 - 액세스 제어
암호 암호화 - 엿보는 눈으로부터 데이터를 보호하거나 숨김 ;
세션 관리 - 각 사용자와 관련된 시간에 민감한 상태입니다.

어떤 애플리케이션이든 Shiro는 종합적인 보안 관리 서비스를 제공할 수 있습니다. 그리고 다른 보안 프레임워크에 비해 Shiro는 훨씬 간단합니다.

2. Shiro의 아키텍처 소개

먼저 Shiro의 세 가지 핵심 구성 요소인 Subject, SecurityManager 및 Realms를 살펴보겠습니다.

Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개


제목: "현재 운영 사용자". 그러나 Shiro에서 주체 개념은 사람을 지칭할 뿐만 아니라 타사 프로세스, 백그라운드 계정(데몬 계정) 또는 기타 유사한 것일 수도 있습니다. 이는 단순히 "소프트웨어가 현재 상호 작용하는 대상"을 의미합니다. 그러나 대부분의 목적과 용도에서는 이를 Shiro의 "사용자" 개념으로 생각할 수 있습니다.

제목은 현재 사용자의 보안 업무를 나타내며, SecurityManager는 모든 사용자의 보안 업무를 관리합니다.

SecurityManager: 일반적인 Facade 모드인 Shiro 프레임워크의 핵심입니다. Shiro는 SecurityManager를 통해 내부 구성 요소 인스턴스를 관리하고 이를 통해 보안 관리를 위한 다양한 서비스를 제공합니다.

Realm: Realm은 Shiro와 애플리케이션 보안 데이터 사이의 "브리지" 또는 "커넥터" 역할을 합니다. 즉, 사용자에 대한 인증(로그인) 및 권한 부여(액세스 제어) 확인을 수행할 때 Shiro는 애플리케이션에 구성된 Realm에서 사용자와 해당 권한 정보를 조회합니다.

이런 의미에서 Realm은 본질적으로 보안과 관련된 DAO입니다. Realm은 데이터 소스의 연결 세부정보를 캡슐화하고 필요할 때 관련 데이터를 Shiro에 제공합니다. Shiro를 구성할 때 인증 및/또는 권한 부여를 위해 하나 이상의 영역을 지정해야 합니다. 여러 Realm을 구성할 수 있지만 적어도 하나는 필수입니다.

Shiro에는 LDAP, 관계형 데이터베이스(JDBC), INI와 유사한 텍스트 구성 리소스 및 속성 파일과 같은 수많은 보안 데이터 소스(디렉터리라고도 함)에 연결할 수 있는 Realm이 내장되어 있습니다. 등. 기본 Realm이 요구 사항을 충족하지 않는 경우 사용자 정의 데이터 소스를 나타내는 자체 Realm 구현을 연결할 수도 있습니다.

Shiro 전체 아키텍처 다이어그램:

Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

위에 언급된 Subject, SecurityManager 및 Realm의 세 가지 핵심 구성 요소 외에도 Shiro의 주요 구성 요소에는 다음이 포함됩니다.

인증자: 인증은 사용자의 신원을 확인하는 과정입니다. 이 프로세스의 일반적인 예는 친숙한 "사용자/비밀번호" 조합입니다. 대부분의 사용자는 소프트웨어 시스템에 로그인할 때 일반적으로 자신의 사용자 이름(주체)과 이를 지원하는 비밀번호(인증서)를 제공합니다. 시스템에 저장된 비밀번호(또는 비밀번호 표현)가 사용자가 제공한 비밀번호와 일치하면 인증된 것으로 간주됩니다.

승인자: 승인은 본질적으로 액세스 제어입니다. 리소스, 웹 페이지 등과 같이 애플리케이션 사용자가 액세스할 수 있는 콘텐츠를 제어합니다.

SessionManager: 보안 프레임워크의 세계에서 Apache Shiro는 고유한 기능을 제공합니다. 즉 모든 애플리케이션 또는 아키텍처 계층에서 Session API를 일관되게 사용하는 것입니다. 즉, Shiro는 소규모 백엔드 독립형 애플리케이션부터 대규모 클러스터 웹 애플리케이션에 이르기까지 모든 애플리케이션에 대화형 프로그래밍 패러다임을 제공합니다. 이는 세션을 사용하려는 애플리케이션 개발자가 서블릿이나 EJB 컨테이너를 사용하도록 강요받지 않는다는 것을 의미합니다. 또는 이러한 컨테이너를 사용하는 경우 개발자는 이제 서블릿이나 EJB 메커니즘 대신 모든 계층에서 일관된 세션 API를 사용하도록 선택할 수 있습니다.

CacheManager: Shiro의 다른 구성 요소에 대한 캐싱 지원을 제공합니다.


위 내용은 Apache Shiro 사용자 매뉴얼의 내용입니다. (1) Shiro Architecture 소개 기타 관련 내용은 PHP 중국어 홈페이지(www.php)를 참고하시기 바랍니다. .cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.