2017-04-18 1 views
2

스프링 부트를 사용하여 안정적인 API 엔드 포인트를 작성하고 있습니다. 로그인/로그 아웃 기능을 만들고 싶습니다. 스프링 부트 기본 로그인 페이지를 사용하고 싶지 않습니다. 나의 이해, 그렇게 할 수있는 간단하고 안전한 방법에서스프링 부트 Restful API : 간단한 인증

은 다음과 같습니다

  1. 클라이언트는
  2. 서버가 사용자에 대한 후속 호출에 사용할 수있는 인증 코드를 다시 전송 사용자 이름과 암호를 사용하여 서버를 제공 사용자가 로그 아웃 할 때까지 인증 코드가 유효
  3. API를 엔드 포인트/일정 시간은 통상의 이름이 방법에 대한 있습니까

전달 인증?

스프링 부트 로그인 페이지를 사용하고 싶지 않습니다. 스프링 부트에는이 인증 방법에 대한 다른 기본 구현이 있습니까? 그렇다면 인증 코드는 어디에 저장됩니까? 그것은 메모리에 저장됩니까?

+0

에서의되어 처리, 두 파트너 사, 두 번째 부분 "나는 봄을 사용하지 않으 부팅 로그인 페이지. " - 왜 * 왜 * 설명하지 않았습니다. 대체하고 싶은게 뭐니? – chrylis

+0

저는 편안한 API를 구현하고 있습니다. UI가 없습니다. –

+0

그러면 암호 보안 기능을 갖춘 Spring Security OAuth2를 찾고있을 것입니다. – chrylis

답변

1

나는 전에 같은 질문을했습니다. Rest API를 구현 중이므로 기본적으로 상태 비 저장이어야하므로 일부 API를 요청할 때마다 자신을 인증해야합니다. 이 방법을 선호한다면 인증을 수행하는 데 사용할 수있는 CAS 시스템을 갖춰보십시오. 이것은 당신이 질문에서 설명한 것과 거의 같습니다. (여기 내 블로그에서 post의 단순화 된 CAS가 있습니다.)

그렇지 않으면 진입 점이 있거나 어쩌면 Rest 서비스 앞에 프록시가 있다고 생각할 수 있습니다.이 프록시에서는 제공하는 자격 증명을 기반으로 클라이언트에 대한 토큰을 설정할 수 있으며 클라이언트에게이 토큰을 보내도록 요청할 수 있습니다 요청과 함께. 해당 시간 이후에 토큰의 만료 시간을 설정하고 무효화하십시오.

스프링 부팅시 기존 구현이 없다고 생각하지만 CAS 및 토큰 기반 요청의 경우 Spring Security를 ​​기능의 일부에 사용할 수 있습니다. TokenBasedAuthentication은 이미 스프링 보안에 구현되어있다.

+0

다른 답변에서 언급 된 JWT와 다른 점은 무엇입니까? –

+1

내가 내 대답을 올렸을 때, 그는 아직 거기에 없었습니다. 토큰 기반 솔루션에 대해서는 정확히 동일하다고 생각합니다. – Simon

2

무형의 토큰 기반 인증이 당신이 원하는 것이다. Json Web Token (JWT)은 그것의 구현 중 하나입니다.

저는 SpringBoot에서 Angular와 함께 사용하기 위해 JWT를 설정하는 방법에 대한 자습서를 작성했습니다. 그것은 여기에 포함하는 데 시간이 너무 오래입니다 - 그것은 http://chariotsolutions.com/blog/post/angular-2-spring-boot-jwt-cors_part2

에서 JWT와 함께 첫 번째 부분을 원하는 경우에, 그것은 http://chariotsolutions.com/blog/post/angular-2-spring-boot-jwt-cors_part1

+1

이 도움말은 도움이되기도했습니다. https://auth0.com/blog/securing-spring-boot-with-jwts/ –