2017-11-17 5 views
1

우리는 API 관리를 위해 WSO2 API 관리자 1.10.0을 사용합니다. 이전에 scope-to-role-mapping을 통해 제한된 API를 설정했습니다. 이제 우리는이 API의 여러 버전을 처리해야합니다 (모든 클라이언트가 동시에 새 버전으로 마이그레이션 할 수있는 것은 아닙니다). 그러나 동일한 범위 (범위 키와 범위 이름)를 재사용 할 수없는 것 같습니다. 이전 버전을 제한했습니다. 와?WSO2 API 관리자에서 여러 API 버전의 범위 키를 재사용 하시겠습니까?

이상하게 보입니까? 그렇다면 API의 각 버전에 대해 고유 한 범위 - 역할 매핑을 만들어야한다는 의미입니까? 즉,/default API를 사용하는 가입자는 사용중인 API 버전에 따라 액세스 토큰을 요청할 때 범위 이름을 업데이트해야합니다.

여기에 어떤 전략을 사용해야합니까? 일반적으로 범위 키 <API-Name>-<Restriction-Key>을 사용하여 범위를 만듭니다. 지금은 <API-Name>-<Version>-<Restriction-Key>을 사용해야하며 사용자가 이전 할 때 액세스 토큰을 올바른 버전으로 요청할 때 범위를 업데이트해야합니까?

Google 사용자가 새로운 버전의 API로 전환하는 경우 동일한 스코프를 계속 사용하거나 API의 특정 버전에 고유하게 연결되어 있는지 여부를 확인하시기 바랍니다.

답변

0

답변을 찾았습니다.

첫째, 게시자에서 "새 버전 만들기"를 사용하여 새 버전의 API를 만드는 경우 범위를 다시 사용할 수 있습니다. 하지만 새로운 swagger-specification을 가져 오자마자 범위가 제거되고 "관리 단계"에서 재사용 할 수 없습니다.

범위가 /_system/governance/apimgt/applicationdata/provider/<provider-name>/<api-name>/<api-version>/swagger.json 아래의 저장소에 저장된 swagger 문서에 실제로 지정되어 있음을 알게되었습니다. swagger-document에는 범위를 포함하는 "x-wso2-security"라는 속성이 있습니다 ("관리 단계"동안 게시자가 읽음). 예를 들어 이전 API 버전에서 x-wso2 보안 속성을 복사하는 등 swagger 문서에 범위를 추가하고 리소스를 저장 한 다음 게시자를 열면 범위가 " 관리 단계 ".

게시자를 만들 때 WSO2 개발 팀이 놓친 내용이라고 생각하지만 행복하게도 위에서 설명한대로 수동 작업을 수행하여 문제를 해결할 수 있습니다.