2016-08-09 3 views
2

저는 Azure Active Directory로 웹 API 리소스를 보호하는 방법에 대해 고민하고 있습니다. 현재 Azure AD 로그인 페이지로 사용자를 리디렉션하는 앵귤러 2 앱이 있으며 그 대가로 id_token을받습니다. 이 ID 토큰은 후속 통화에서 무기 토큰으로 사용되며 작동하는 것 같습니다. 내 질문은 여기에있다.Windows Azure Active Directory 무기명 인증

public void ConfigureAuth(IAppBuilder app) 
    { 
     app.UseWindowsAzureActiveDirectoryBearerAuthentication(
      new WindowsAzureActiveDirectoryBearerAuthenticationOptions 
      { 
       TokenValidationParameters = new TokenValidationParameters 
       { 
        ValidAudience = ConfigurationManager.AppSettings["ida:ClientId"], 
        ValidateIssuer = true 
       }, 
       Tenant = ConfigurationManager.AppSettings["ida:TenantId"] 
      }); 
    } 

여기서 우리는 무기명 토큰에 대한 유효성 검사를 수행하는 것 같습니다. 내가 정말로 이해하지 못하는 것은 그것이 어떻게 작동하는지이다. 모든 API 호출에서 Azure AD와 통신하고 있습니까? 그렇다면 이것이 이상적인 접근 방법인가? 그렇지 않은 경우 누군가가 자신의 토큰을 만들고 API를 해킹하는 것을 어떻게 막을 수 있습니까?

내가 이해할 수없는 중요한 지식이 있습니다. 이해가 잘 안되는 자료가 있으면 제안을 읽어보십시오.

감사합니다.

답변

0

TokenValidationParameters을 통해 유효성을 검사 할 속성을 정의하거나 사용자 정의 유효성 검사기를 구현하기위한 알림을 만들 수 있습니다. 그렇지 발행자 (토큰에 iss 제)의 임차인 이드와 일치하는 경우, 미들웨어 확인한다 - 발급자 검증되는 것을 의미한다 - 당신 상기 코드의 경우

ValidateIssuer = true 그 정의 (예 : 응용 프로그램이 세입자 contoso.com에 등록 된 경우 토큰이 실제로 세입자 contoso.com에서 발급되었는지 매개 변수가 유효한지 확인) - 다른 세입자가 생성 한 토큰을 차단합니다.

ValidAudience = true은 생성 된 토큰이 실제로 응용 프로그램에 생성되었는지 여부를 확인하기 위해 미들웨어에 알립니다. 따라서 매번 Azure 광고와 통신 할 필요가 없습니다.

토큰 유효성 검사에 대한 추가 옵션은 MSDN article을 참조하십시오.

http://www.cloudidentity.com/blog/2014/03/03/principles-of-token-validation/

:

은 토큰 검증에 대한 좋은 포스트 아래를 참조하시기 바랍니다