2016-10-27 4 views
0

IdentityServer3의 사용자 정의 부여 유형에서 "act-as"스키마에 대한 토큰 안에 토큰을 추가해야합니다. PreserveAccessToken으로 시도했지만 현재 ClaimsPrincipal에서 클레임으로 토큰을 추가하기 만하지만 다른 토큰이 체인의 다음 서비스/API로 전달 될 때 클레임으로 중첩 할 수있는 방법을 찾을 수 없습니다.IdentityServer3 - 사용자 정의 부여 유형 (작업 - 스키마) 용 토큰 내부에 토큰 추가

이 배경은 최종 사용자의 모든 홉 (hop)에 대한 감사를 통화 체인의 마지막 서비스/API로 유지하는 것입니다.

+0

correlationId를 작성하여 일부 머리글의 일부로 넣지 않는 이유는 무엇입니까? –

+0

예를 들어 호출 체인에서 마지막 링크는 DB에 대한 실제 호출을 생성하고 이러한 작업의 감사를 기록하려고 시도하므로 작업 시작 자 (예 : 최종 사용자)를 추출 할 수 있어야합니다. 중간에있는 모든 서비스/api는 작업의 일부였습니다. IdSrvr이 다른 토큰 내부에 토큰을 중첩 시키도록 만들 수 있다면 추가 작업없이 모든 것을 해결해야합니다. – CesarD

답변

1

이것은 사용자 지정 권한 부여를 사용하여 수행 할 수 있습니다. 이렇게하면 맞춤 '작업'으로 토큰 종점을 확장 할 수 있습니다 (예 : 위임 된 소유권 주장이 포함 된 토큰 발행 - 예 : 토큰.

문서 위치 : https://identityserver.github.io/Documentation/docsv2/advanced/customGrantTypes.html 여기

또한 시나리오에 근접 샘플입니다 말했다 https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Multi%20Hop%20Delegation%20(ActAsCustomGrant)

-이 아마 여러 홉을 통해 사용자 ID를 전달하는 가장 비싼 방법입니다.

백엔드 시스템간에 신뢰할 수있는 하위 시스템이있는 경우 필수 데이터를 페이로드로 전송하는 것이 훨씬 간단하고 빠릅니다.

+0

예, 저는 꽤 오래 동안 멀티 홉 샘플을 실험 해 왔습니다. 내 문제는 호출 체인에서 3 번째 API를 실험 할 때 발생했습니다. 이전 클라이언트를 추적하기 때문에 3 번째 호출을 추적 할 때 첫 번째 추적을 잃어 버리게됩니다. 페이로드에서 데이터를 전송하는 것에 대한 우려는 Api의 비즈니스 로직에 권한/토큰 논리에 의해 처리되어야하는 책임을 위임해야한다는 것입니다. – CesarD

+0

아마도 내가 성취하고자하는 것은 이것과 관련이 있습니다 : https://tools.ietf.org/html/draft-hunt-oauth-chain-01 – CesarD

+0

이것을 달성하기 위해 어떻게 든 acr 값을 사용할 수 있습니까? – CesarD