2017-02-02 1 views
3

다음 시나리오를 고려하십시오. asp.net webapi과 함께 API를 구현하는 애플리케이션이 있습니다..net 4.5.1에서 실행되는 WebApi 응용 프로그램과 함께 .net 코어에서 실행되는 Identity Server 4를 사용할 수 있습니까?

인프라에서 사용할 새 Identity Server 4을 설정하고 있습니다. ID 서버를 사용하려면 api가 필요합니다.

IdentityServer 3 인 경우 IdentityServer3.AccessTokenValidation을 사용합니다. 당신의 API는 .NET의 핵심에 있던 경우

당신이 IdentityServer4.AccessTokenValidation

를 사용하지만 당신의 API도 owin하고 신원 서버가 그물 코어를 기반으로하지 이전 스타일의 asp.net webapi을 사용하는 주어진 것입니다 당신이 할 함께 작업 할 수있는 옵션이 있습니까?

답변

6

네, 정상적으로 작동합니다. IdentityServer3 및 IdentityServer4는 동일한 프로토콜을 준수하는 구현입니다. TokenValidation 미들웨어에도 똑같이 적용됩니다.

IdentityServer4.AccessTokenValidation을 사용하여 IdentityServer3 WebApi 프로젝트에서 가져온 토큰의 유효성을 검사하는 AspNetCore API를 사용할 수 있습니다. 반대로 IdentityServer3.AccessTokenValidation을 사용하여 IdentityServer4 AspNetCore 프로젝트에서 가져온 토큰의 유효성을 검사하는 Asp.Net 4.x WebApi를 가질 수 있습니다. 실제로 공급자가 사양에 따라 OpenIDConnect를 구현하는 경우 모든 언어/프레임 워크로 작성할 수있는 모든 API에 대해 대부분의 OpenIDConnect 공급자를 사용할 수 있습니다.

+0

고맙습니다. 당신은 그것이 "이론적으로"또는 당신이 그것을 시도하고 그것이 효과가 있다는 것을 말하고 있습니까? 조금 더 실제적인 세부 사항이 도움이 될 것입니다. 라이브러리가 어디서 사용되는지, 참조 토큰 (자체 포함 토큰과 반대되는)이 Identity Server의 호환되지 않는 버전에서 유효성을 확인할 수 있는지 확인하는 방법 등. Spec은 많은 구현 세부 사항, 특히 액세스/새로 고침 토큰은 인코딩되어 있으며 구현에 따라 다릅니다. –

+0

클라이언트 응용 프로그램에서 ASP.NET 코어를 사용하는 경우 IdentityServer4.AccessTokenValidation을 사용하십시오. 클라이언트 응용 프로그램에서 ASP.NET 4.x를 사용하는 경우 IdentityServer3.AccessTokenValidation을 사용하십시오. 두 가지 방법 모두 IdentityServer 3 또는 4와 동일한 방식으로 이야기합니다. 비 호환성은 없습니다. 이것을 테스트하는 repo가 ​​있습니다. https://github.com/IdentityServer/CrossVersionIntegrationTests –

+0

@ScottBrady, 매우 도움이됩니다. 감사합니다. 나는 그것을 시도 할 것이다. –

관련 문제