이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
토큰 및 승인 코드 메타데이터 정보
Apigee는 OAuth 액세스 토큰, 갱신 토큰, 승인 코드를 생성하고 인증된 앱에 배포합니다. Apigee는 생성 시 이러한 토큰과 코드를 저장합니다. 이후에 Apigee가 이러한 토큰 또는 코드가 포함된 인바운드 API 요청을 받으면 Apigee는 저장된 정보를 사용하여 요청을 승인합니다.
Apigee는 이러한 OAuth 아티팩트를 생성할 때 토큰 또는 코드에 메타데이터를 연결합니다. 예를 들어 액세스 토큰은 만료 시간, 관련 앱 및 개발자, 기타 정보를 정의하는 이름/값 쌍과 연결되어 있습니다.
Apigee 액세스 토큰의 JSON 표현은 다음과 같습니다.
{ "issued_at" : "1372170159093", "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501", "scope" : "READ", "status" : "approved", "api_product_list" : "[Product1,Product2]", "api_product_list_json" : ["Product1", "Product2"], "expires_in" : "3599", //--in seconds "developer.email" : "joe@weathersample.com", "organization_id" : "0", "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe", "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND", "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp", "organization_name" : "apifactory", "refresh_count" : "0" }
OAuth 토큰 및 승인 코드에 커스텀 속성 추가
커스텀 메타데이터를 액세스 토큰에 첨부하는 것이 유용한 경우도 있습니다. 예를 들어 토큰에 사용자 이름, 그룹 멤버십, 사용자의 역할, 고객 ID, 세션 식별자, 기타 임의 정보를 추가하려고 할 수 있습니다. Apigee에서는 이러한 데이터를 '커스텀 속성'이라고 합니다. 이후에는 토큰이 API 요청의 범위 내에서 확인되면 해당 데이터는 컨텍스트 변수를 통해 API 프록시에서 사용할 수 있게 됩니다. API 프록시는 토큰에 연결된 커스텀 데이터를 기반으로 세분화된 승인 또는 라우팅 결정을 내릴 수 있습니다.
임의 데이터를 토큰에 연결하려면 OAuthV2 정책의 <Attributes>
요소를 사용합니다. 커스텀 속성의 이름과 값을 지정할 수 있습니다. 예를 들어 다음은 토큰을 생성하고 'tenant_list'라는 커스텀 속성을 토큰에 연결하는 정책 구성입니다.
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>600000</ExpiresIn> <GenerateResponse /> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GrantType>request.queryparam.grant_type</GrantType> <Attributes> <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/> </Attributes> </OAuthV2>
여러 커스텀 속성을 지정할 수 있으며 생성 시 승인 코드(<Operation>GenerateAuthorizationCode</Operation>
) 또는 토큰(<Operation>GenerateAccessToken</Operation>
)에 암시적으로 연결할 수 있습니다.
display
가 true
(기본값)로 설정된 경우 커스텀 속성이 응답으로 반환되며 이 속성은 앱에서 보거나 최종 사용자에게 전달될 수 있습니다.
display
가 false
로 설정된 경우 커스텀 속성은 데이터 저장소에 저장되지만 응답 메시지에 반환되지 않습니다. 어느 경우든 토큰이 확인된 후에는 API 프록시 내의 정책에서 커스텀 데이터를 사용할 수 있습니다.
display
옵션에 대한 자세한 내용은 응답에서 커스텀 속성 표시 또는 숨기기를 참조하세요.
런타임 시 커스텀 액세스 토큰 속성 가져오기
OAuthV2/VerifyAccessToken
에 대한 호출이 있으면 Apigee는 토큰 저장소에서 토큰을 검색하여 확인합니다. 그런 다음 Apigee는 토큰에 대한 정보가 포함된 컨텍스트 변수 집합을 채웁니다. 예를 들면 다음과 같습니다.
organization_name
developer.id
developer.app.name
client_id
grant_type
token_type
access_token
issued_at
expires_in
//--초 후status
scope
apiproduct.name*
토큰에 커스텀 속성이 있는 경우 accesstoken.{custom_attribute}
이라는 이름을 가진 컨텍스트 변수로 커스텀 속성을 사용할 수 있습니다. 예를 들어 위에 표시된 정책에서 토큰이 발급된다고 가정해 보겠습니다. 이러한 토큰을 확인하면 토큰이 생성된 시점에 저장된 값이 포함된 accesstoken.tenant_list
이라는 컨텍스트 변수가 추가로 생성됩니다.
그러면 정책 또는 조건이 이러한 변수를 참조하여 저장된 값에 따라 동작을 수정할 수 있습니다.
런타임 시 커스텀 속성 설정 및 업데이트
API 호출이 Apigee에서 처리되는 동안 API 프록시는 런타임 시 액세스 토큰과 연결된 메타데이터를 업데이트해야 할 수 있습니다. 이를 위해 Apigee는 토큰 속성을 가져오고 설정하는 정책을 제공합니다. 자세한 내용은 Get OAuth V2 Info 정책 및 Set OAuth V2 Info 정책을 참조하세요.
In each of these policies, the AccessToken
element should refer to a variable that
contains the access token.