>  기사  >  Java  >  Java 권한 프레임워크 소개: Shiro의 통합 인증 및 권한 부여

Java 권한 프레임워크 소개: Shiro의 통합 인증 및 권한 부여

php是最好的语言
php是最好的语言원래의
2018-08-09 17:07:003622검색

Shiro의 통합 인증 및 승인

Shiro는 Apache 기반의 간단하고 사용하기 쉬운 Java 권한 프레임워크입니다. 단일 애플리케이션의 경우 Shiro는 완벽하고 신속하게 권한 요구 사항을 충족할 수 있으므로 일반적으로 프로젝트에서 사용됩니다. 개발자를 위한 첫 번째 선택이 됩니다.

그러나 동일한 인증 및 승인이 필요한 두 번째, 세 번째 또는 n번째 애플리케이션을 만들어야 하는 경우 요구 사항을 충족하기 위해 Shiro를 확장하거나 다른 프레임워크를 통합해야 할 수 있습니다.

Shiro가 인증 및 승인을 수행하는 방법

Shiro 자체는 인증 및 승인을 얻는 데 도움이 되지 않지만 Shiro는 권한과 관련된 몇 가지 개념을 매우 잘 정의하여 특정 구현을 완료할 수 있도록 합니다.

  • Authentication
    Shiro에서 인증을 완료하는 것은 일반적으로 subject.login(token)은 사용자를 나타내고, Token은 사용자가 인증을 요청할 때 제출하는 인증 정보를 나타내며 Principals, Credentials, School ID 등 일부 정보는 AuthenticatingRealm.doGetAuthenticationInfo를 통해 얻을 수 있습니다. (). 제출된 토큰을 확인합니다. 로그인에 성공하면 현재 로그인된 사용자

  • Authorization
    를 저장합니다. Shiro에서는 일반적으로 @RequiresPermissions와 같이 사용자가 보호된 리소스에 액세스할 때 Shiro가 AuthorizingRealm을 전달합니다. doGetAuthorizationInfo(), 현재 인증 주체의 Principal로부터 사용자의 권한을 얻어 해당 사용자가 리소스에 접근할 수 있는지 확인합니다. Shiro에서는 Realm을 구현하면 위의 두 가지 작업이 매우 간단합니다. . 신청 인증 및 승인을 완료할 수 있습니다.

  • 하지만 여러 애플리케이션이 있고 동일한 사용자 및 권한 정보 세트를 재사용해야 하는 경우 어떻게 해야 할까요? Realm을 재사용할 수 있고 사용자 권한이 동일한 DB에 있습니다. 이는 가능하지만 결합도가 너무 높습니다. 서로 다른 애플리케이션이 동일한 데이터 소스에 액세스해야 합니다. 그렇지 않으면 사용자 권한과 관련된 DAO를 제거하여 RPC 또는 Rest 호출로 사용할 수 있지만 더 나은 방법은 전체 인증 및 권한 부여를 분리하여 별도의 인증 및 권한 부여로 사용하는 것입니다. service

Shiro를 기반으로 한 통합 인증 및 승인

통합 인증 및 승인을 달성하기 위해 Shiro에는 CAS를 통합할 수 있는 CasFilter가 있지만 CAS는 또 다른 프레임워크 세트이므로 상대적으로 무겁고 별도의 학습 비용이 있으므로 여기서는 소개입니다 더 간단하고 가볍고 사용하기 쉬운 Shiro 기반 인증 및 권한 부여 서비스 shiro-uaa

인증 및 권한 부여 프로세스

사용자가 보호된 리소스를 요청합니다. Resource Server

  1. Resource Server는 사용자가 사용자인지 여부를 결정합니다. 로그인했습니다

  2. 로그인하지 않은 경우 리소스 서버는 사용자에게 로그인을 위해 UAA 서버로 안내합니다

  3. 사용자가 UAA 서버에 로그인하면 UAA 서버는 코드를 반환합니다. 사용자에게 이전에 방문했던 리소스 서버

  4. 리소스 서버 코드를 UAA 서버로 안내하여 액세스 토큰을 얻습니다. 토큰에는 사용자 인증 정보가 포함됩니다

  5. 리소스 서버는 accessToken이 합법적인지 확인합니다. .적법하다면 아래와 같이 Resource Server

  6. 에 사용자 정보를 저장하세요.

resource-server

Java 권한 프레임워크 소개: Shiro의 통합 인증 및 권한 부여

Quote maven
  • 및 shiro도 마찬가지입니다. 권한 제어를 위해 관련 댓글을 사용하세요
  1. 기본적으로는 auth-. 서버는 jar 패키지로만 제공됩니다. 향후 배포 가능한 서비스가 있을 예정입니다. shiro-uaa에 대한 자세한 내용은 프로젝트 주소를 확인하세요
  2. 관련 권장 사항:

  3. 상세 Shiro 인증 구현 설명
    1. Apache Shiro 사용자 매뉴얼 (1) Shiro 아키텍처 소개

    위 내용은 Java 권한 프레임워크 소개: Shiro의 통합 인증 및 권한 부여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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