2017-03-29 1 views
1

Azure 웹 응용 프로그램에 호스팅 된 Angular4 응용 프로그램과 Azure API 응용 프로그램에서 호스팅되는 .NET 핵심 웹 API가 있습니다.AAD 보안 Azure 웹 응용 프로그램 내에서 액세스 토큰 검색

API는 Azure Active Directory로 보호됩니다. 현재 ng2-adal을 사용하여 API 호출을 수행하기 위해 헤더에 주입하는 액세스 토큰을 얻습니다.

는 지금은 NG2-ADAL 모듈을 분리합니다 (API 같은) 같은 클라이언트 ID를 사용하여 인증/권한 부여 기능을 사용하여 내 웹 응용 프로그램을 확보하려고합니다. 내 웹 사이트를 탐색 할 때 AAD 로그인으로 리디렉션되고 성공적으로 로그인하면 내 사이트로 리디렉션됩니다. 이제 웹 응용 프로그램 내에서 동일한 ClientId로 보호되는 API를 호출하지는 않지만 토큰을 검색 할 수있는 방법을 찾을 수 없습니다.

이 경우 각도 홈 앱 내에서 액세스 토큰을 검색 할 수있는 방법이 있습니까? 토큰이 AppServiceAuthSession 쿠키 내에 암호화되어 저장처럼 같습니다 :

enter image description here

+0

내가 시나리오를 이해한다면 확실하지 않다, 그러나 당신은한다 회신 URL에 필요한 토큰 https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-scenarios#single-page-application-spa – Sentinel

+0

@Sentinel 감사합니다. 도움. 불행히도 여러분이 참조하는 예제는 adal.js를 사용하고 있습니다. –

+0

모든 라이브러리를 참조하고 있다고 생각하지 않습니다. 단지 토큰이 회신 URL에 있다고 말하는 것입니다. – Sentinel

답변

2

AppServiceAuthSession 것은 토큰과 다른 쿠키입니다. 이 시나리오에서는 Azure 앱의 구성을 수정하여 웹 API에 대한 access_token을 획득해야합니다.

우리는 아래와 같은 설정을 수정할 수 있습니다 Resource Explore를 사용할 수 있습니다

1. 각도 웹 앱 찾기

2. 찾습니다 config-> authsettings 아래와 같이 푸른 응용 프로그램에 대한 redirect_uri로를 config (설정)

"additionalLoginParams": [ 
    "response_type=code id_token", 
    "resource=3fa9607b-63cc-4050-82b7-91e44ff1df38" 
], 

3 (자원이 응용 프로그램을 보호하는 데 사용 푸른 응용 프로그램의 클라이언트 ID입니다) : 당신이 로그인 한 후 다음 https://appfei.azurewebsites.net/.auth/login/aad/callback

각 응용 프로그램은, 당신은 엔드 포인트를 통해 access_token이를 얻을 수 있습니다 : https://appfei.azurewebsites.net/.auth/me

enter image description here

,363,210

그런 다음 우리는 access_token이 가능하도록 아래 그림은 웹 API를 호출 할 수처럼 고급 푸른 활성 설정를 사용하여 웹 API를 보호해야합니다 enter image description here

+0

매우 유용한 답변입니다. 고마워요! –

+0

AAD B2C (B2C로 만든 로컬 계정을 가진 AAD, 다른 소셜 공급자가없는 경우) –

+0

내 이해에 따라 Azure AD B2C는 표준 OAuth 2.0 흐름을 확장합니다. 간단한 인증 및 권한 이상의 역할을 수행합니다. 또한이 시나리오에서 지원되어야합니다.자세한 내용은 [이 문서]를 참조하십시오 (https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-oauth-code#3-use-the- 토큰). –

관련 문제