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을 구현하면 위의 두 가지 작업이 매우 간단합니다. . 신청 인증 및 승인을 완료할 수 있습니다.
Shiro를 기반으로 한 통합 인증 및 승인
통합 인증 및 승인을 달성하기 위해 Shiro에는 CAS를 통합할 수 있는 CasFilter가 있지만 CAS는 또 다른 프레임워크 세트이므로 상대적으로 무겁고 별도의 학습 비용이 있으므로 여기서는 소개입니다 더 간단하고 가볍고 사용하기 쉬운 Shiro 기반 인증 및 권한 부여 서비스 shiro-uaa
인증 및 권한 부여 프로세스
사용자가 보호된 리소스를 요청합니다. Resource Server
Resource Server는 사용자가 사용자인지 여부를 결정합니다. 로그인했습니다
로그인하지 않은 경우 리소스 서버는 사용자에게 로그인을 위해 UAA 서버로 안내합니다
사용자가 UAA 서버에 로그인하면 UAA 서버는 코드를 반환합니다. 사용자에게 이전에 방문했던 리소스 서버
리소스 서버 코드를 UAA 서버로 안내하여 액세스 토큰을 얻습니다. 토큰에는 사용자 인증 정보가 포함됩니다
리소스 서버는 accessToken이 합법적인지 확인합니다. .적법하다면 아래와 같이 Resource Server
에 사용자 정보를 저장하세요.
위 내용은 Java 권한 프레임워크 소개: Shiro의 통합 인증 및 권한 부여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!