Spring Social로 휴식 인증을 하는 방법은?
Spring security 예제(및 spring security java config)에 나와 있는 Spring Social + Spring security를 구현했습니다.당시 몇 가지 문제를 보고했습니다(https://jira.springsource.org/browse/SEC-2204) 참조). 이 문제는 모두 해결되었으며 보안은 정상적으로 작동합니다.
그러나 보안 구현을 변경하고 RESTful 인증을 사용하고 싶습니다.Spring oauth/oauth2(http://projects.spring.io/spring-security-oauth/) 에서 이 문제를 해결하지만 해당 사진에 Spring Social이 어떻게 들어맞을지 알 수 없습니다.Spring social이 페이스북/트위터와 oauth로 막후에서 이야기하지만, Spring social의 가입 양식이나 다른 특징들이 휴식을 위한 API를 위해 만들어진 것은 아니라고 생각합니다.
어떤 예나 아이디어라도 분명히 도움이 될 것입니다.
이 게시물 업데이트: (4/6/2014)
- 저는 제 API를 소비하는 (PHP) 사이트를 만들었습니다.
- 이 PHP 사이트(클라이언트 사이트라고 하자)는 페이스북 PHP SDK를 사용하여 자체 사용자를 등록합니다.이것은 자신의 구성원들을 모으는 완전히 별개의 방법입니다.
- 되면 사용자 이름, first name 및 및 와 함께 type 되면 합니다 에 를 하고 와 가 합니다 하고 가
client_credentials
인증. - 이 전달된 사용자 데이터는 메인 시스템에 사용자 레코드를 생성합니다! (메인 어플리케이션)
- 이후를 통해 하여 ① OAuth2 grant type password를 전송할 마다 ② OAuth2 grant type password를 합니다.
client_id
,client_secret
비밀번호, "Token이 할 수 있습니다. , "Authentication Token" 은 "Authentication Token" 은 "Authentication Token" 은 "Authentication Token" 은 "Authentication Token 은 "Authentication Token" 입니다.
갈 길이 멀어 보이지만 메인 시스템에 사용자 기록을 남기는 문제를 해결합니다.다른 방법이 있는지 궁금합니다.조언 좀 해주세요.
그래서 당신은 Oauth2를 당신의 어플리케이션에 사용하기를 원하고, 비밀번호 흐름을 사용하기를 원합니다.spring security oauth2-resource-server 프로젝트를 사용하여 리소스 서버를 구현할 수 있습니다.리소스 서버에서 ResourceOwnerPasswordResourceDetails를 사용하여 client_id, client_secret, 사용자 이름 및 암호를 제공할 수 있습니다. Ohuth2RestTemplate를 사용하여 리소스 서버를 호출할 수 있습니다.
춘사회는 2019년에 폐지되었습니다.질문에서 드러났던 경우(이 평가절하 훨씬 전), 가장 쉬운 솔루션은 "소셜" ID를 즉시 연합할 수 있는 권한 부여 서버를 사용하는 것입니다.키클로크는 무료 "온프레미스" 샘플이며 Auth0 a SaaS 원(프리티어 포함)입니다.좋아하는 검색 엔진에서 "OIDC authorization-server"를 검색하고 필요에 가장 잘 맞는 서버를 선택하기만 하면 됩니다.
REST API는 다음을 사용하여 리소스 서버로 구성됩니다.spring-boot-starter-oauth2-resource-server
. 거기 샘플들.
와, 이미 다른 사람들이 제공하는 좋은 정보들이 많지만, Spring Docs는 Google과 Okta를 인증할 수 있는 샘플 구성 yaml 파일을 제공합니다. 아래 링크(이미 제공된 경우 사과)를 참조하십시오.
https://docs.spring.io/spring-security/reference/5.8/reactive/oauth2/login/core.html#webflux-oauth2-login-common-oauth2-provider
Configuring Custom Provider Properties
There are some OAuth 2.0 Providers that support multi-tenancy, which results in different protocol endpoints for each tenant (or sub-domain).
For example, an OAuth Client registered with Okta is assigned to a specific sub-domain and have their own protocol endpoints.
For these cases, Spring Boot 2.x provides the following base property for configuring custom provider properties: spring.security.oauth2.client.provider.[providerId].
The following listing shows an example:
For these cases, Spring Boot 2.x provides the following base property for configuring custom provider properties: spring.security.oauth2.client.provider.[providerId].
The following listing shows an example:
spring:
security:
oauth2:
client:
registration:
okta:
client-id: okta-client-id
client-secret: okta-client-secret
provider:
okta:
authorization-uri: https://your-subdomain.oktapreview.com/oauth2/v1/authorize
token-uri: https://your-subdomain.oktapreview.com/oauth2/v1/token
user-info-uri: https://your-subdomain.oktapreview.com/oauth2/v1/userinfo
user-name-attribute: sub
jwk-set-uri: https://your-subdomain.oktapreview.com/oauth2/v1/keys
기본 속성(스프링).security.oauth2.client.security.okta)를 사용하면 프로토콜 끝점 위치를 사용자 지정으로 구성할 수 있습니다.
언급URL : https://stackoverflow.com/questions/20033549/how-to-do-rest-authentication-with-spring-social
'programing' 카테고리의 다른 글
wp-admin 또는 wp-login.php에서 루프 재연결 (0) | 2023.09.17 |
---|---|
테이블에 새 행과 데이터를 추가하는 함수 또는 하위 (0) | 2023.09.17 |
Git의 유명한 "ERROR: .git에 대한 권한이 사용자에게 거부됨" (0) | 2023.09.17 |
Excel을 사용하여 행렬을 단일 열로 변환하는 방법 (0) | 2023.09.17 |
READ_의 차이점은 무엇입니까?Oracle 데이터베이스의 커밋되고 직렬화 가능한 격리 수준? (0) | 2023.09.17 |