12.7. OpenID Connect ID 공급자와 3scale 통합의 예
이 예에서는 OpenID Connect ID 공급자로 3scale을 Red Hat SSO(Single Sign-On)와 통합할 때 흐름을 보여줍니다. 이 예제는 다음과 같은 특징이 있습니다.
- 관리 포털에서 API 공급자는 3scale API 제품을 정의하고 RH-SSO를 OpenID Connect ID 공급자로 사용하도록 구성했습니다.
이 제품의 OpenID Connect 구성은 다음과 같습니다.
-
공개 기본 URL:
https://api.example.com -
개인 기본 URL:
https://internal-api.example.com -
OpenID Connectsuer:
https://zync:/auth/realms/myrealm - 표준 흐름인 인증 코드 흐름이 선택됩니다.
-
공개 기본 URL:
3scale 개발자 포털에는 다음과 같은 특징이 있는 애플리케이션이 있습니다. 이 애플리케이션은 API 소비자가 개발자 포털의 특정 애플리케이션 계획에서 제공하는 3scale API 제품에 대한 액세스를 구독한 결과입니다.
-
클라이언트 ID:
myclientid -
클라이언트 시크릿:
myclientsecret -
리디렉션 URL:
https://myapp.example.com
-
클라이언트 ID:
RH-SSO에서는
myrealm영역에 다음과 같은 특성을 가진 클라이언트가 있습니다.-
클라이언트 ID:
myclientid -
클라이언트 시크릿:
myclientsecret -
리디렉션 URL:
https://myapp.example.com
-
클라이언트 ID:
myrealm영역에는 이 사용자가 있습니다.-
사용자 이름:
myuser -
암호:
mypassword
-
사용자 이름:
-
myrealm의 3scale Zync 클라이언트에는 올바른 서비스 계정 역할이 있습니다.
흐름은 다음과 같습니다.
최종 사용자(API 소비자)는 다음 끝점에서 인증 서버인 RH-SSO로 권한 부여 요청을 보냅니다.
https://idp.example.com/auth/realms/myrealm/protocol/openid-connect/auth요청에서 애플리케이션은 다음 매개변수를 제공합니다.
-
클라이언트 ID:
myclientid -
리디렉션 URL:
https://myapp.example.com
-
클라이언트 ID:
- 애플리케이션은 end-user를 RH-SSO 로그인 창으로 리디렉션합니다.
다음 자격 증명을 사용하여 RH-SSO에 최종 사용자 로그인:
-
사용자 이름:
myuser -
암호:
mypassword
-
사용자 이름:
- 구성에 따라 이 특정 애플리케이션에서 최종 사용자가 처음 인증하는 경우 동의 창이 표시될 수 있습니다.
- RH-SSO는 최종 사용자에게 권한 부여 코드를 발행합니다.
API consumer 애플리케이션은 다음 끝점을 사용하여 JWT에 대한 권한 부여 코드를 교환하도록 요청을 보냅니다.
https://idp.example.com/auth/realms/myrealm/protocol/openid-connect/token요청에는 권한 부여 코드와 이러한 매개변수가 포함됩니다.
-
클라이언트 ID:
myclientid -
클라이언트 시크릿:
myclientsecret -
리디렉션 URL:
https://myapp.example.com.
-
클라이언트 ID:
-
RH-SSO는
eyJhbGciOiJSUzI1NiIsInR5cCIgiAiA2lk BenxBArNhqF-A와 같은 access_token 필드가 있는 JSON 웹 토큰(JWT)을 반환합니다. API 소비자 애플리케이션은 다음과 같은 헤더를 사용하여
https://api.example.com에 API 요청을 보냅니다.Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lk…xBArNhqF-A.-
이 애플리케이션에는
https://internal-api.example.com로부터 성공적인 응답을 수신해야 합니다.