2017-12-14 27 views
2

시나리오 : Auth0 단일 페이지 응용 프로그램 클라이언트. 이 클라이언트를 사용하도록 구성된 .NET Web API 및 Angular SPA. 훌륭하게 작동합니다.Auth0 단일 페이지 응용 프로그램에 대해 Azure API 관리를 구성하는 방법

저는 Azure API Management를 API 앞에 레이어로 추가하고 싶습니다. 관리 포털에서 API를 설정하고 업데이트 된 SPA에서 API를 호출하며 SPA에서 테스트 된 호출은 훌륭하게 작동합니다.

이제 사람들이 개발자 포털에서 API 호출을 호출 할 수 있도록 적절한 보안 설정으로 API 관리 포털을 구성하고 싶습니다. 나는 이것을 [https://auth0.com/docs/integrations/azure-api-management/configure-azure]]으로 사용했습니다. 개발자 포털에서

, 내가 Auth0 함께 성공적인 로그인 과정을 거쳐야하고, 무기명 토큰을 다시 얻을 인증 유형으로 인증 코드를 선택할 수 있습니다 : 나는에있어

. 그러나 API 호출은 항상 401을 반환합니다. 올바르게 설정하는 방법에 대해 혼란 스럽기 때문에 이것이라고 생각합니다. 나는 그것을 이해로서 :

  • 중 내가 Auth0의 지침 및 설정 새로운 API 클라이언트를 수행하지만 다음의 경우라면 토큰 하나의 클라이언트가하지 않을에서 발생하기 때문에 반드시이 작동하지 않을 것 내 SPA 고객에 맞습니까? (또는 작동하도록 변경해야하는 것이 있습니까)

  • 또는 Azure API 관리를 SPA 응용 프로그램과 함께 작동하도록 구성하는 방법은 무엇입니까? (이것은 Auth0에서 두 개의 클라이언트가 '지저분 해'보인다는 내 선호하는 방법이 될 것입니다). 하지만 인증 엔드 포인트 URL에 '잠재 고객'값이 필요하지 않습니까? 어떻게해야합니까?

아무도이 작업을 수행하지 않았다면 여기에 대한 안내를 주시면 감사하겠습니다.

답변

2

글쎄, 나는 내 자신의 질문에 대답하기 위해 돌아올 것이라고 생각하지 않았다. 그 이유는이 물건에 대한 나의 일반적인 무언가에 뿌리를두고 있습니다. 예를 들어 나의 필요를 위해 함께 모으려고 노력했습니다. 여기에 자신을 발견 한 사람을 돕기 위해 게시하십시오.

Auth0에서 단일 응용 프로그램 클라이언트를 가져 와서 Azure API 관리와 함께 사용하는 대신, 다른 방법으로 이동하여 비대화 형 클라이언트를 내 SPA와 함께 사용하기로 결정했습니다. 결국 API는 내가 확보하고있는 API이며, API 관리 포털이 작동하도록 설정 한 다음 SPA를 변경하여 API를 사용해야합니다.

Auth0의 클라이언트에 설정된 잠재 고객과 일치하도록 API에서 잠재 고객을 업데이트해야한다는 사실을 기억하고 나면 Management Portal이 작동하기 시작했습니다. SPA가 API와 함께 작동하도록하는 것은 어려운 일이되었습니다. auth0 각도 코드를 변경하여 API가 전송하는 것과 일치하도록 대상을 전달하는 방법을 찾으려고했지만 대신 ClientID를 계속 전송했습니다. (덧붙여서, https://jwt.io/을 사용하여 Bearer 토큰을 해독하고 무슨 일이 일어나고 있는지 알아 내면 청중에 대한 'aud'값을 볼 수 있습니다.

결국 API를 변경했습니다. new JwtBearerAuthenticationOptions 개체에서 TokenValidationParameters 개체 (유형이 TokenValidationParameters)는 ValidAudiences (예 : ValidAudience 속성이 혼동 됨)으로 여러 사용자를 수용 할 수 있습니다. 따라서 ClientID를 추가했습니다.

(확실하지, 나에게 특정 수 있습니다) 그때 변경 유일하게 다른 것은 내가 JsonWebToken 서명 알고리즘 내 비 대화 형 클라이언트에 대한 Auth0 가치 (고급 설정, OAuth를 탭)을 변경했다 있다는 것입니다 HS256에서 RS256.

API 관리 포털과 내 SPA 작업 모두에서 요청이 완료되었습니다.

이것이 올바른 방향인지 또는 내가 위험한 것으로 여기는 것을 알고 있는지 궁금합니다.