2017-11-09 1 views
0

우리는 Azure AD를 통해 인증하기 위해 응용 프로그램 클라이언트 자격 증명을 사용하고 있습니다.Azure AD 클레임 매핑에는 사용자 지정 서명 키가 필요합니다.

Identity.Namenull입니다. 이것은 JWT에 매핑 된 이름 클레임이 없기 때문입니다.

다음과 같이 맞춤 요청을 매핑 할 수 있음을 발견했습니다 : Claims mapping in Azure Active Directory. 응용 프로그램에 정책을 적용 할 때

, 다음 번에 당신이 오류가 인증 : New-AzureADApplicationKeyCredential :

"AADSTS50146: This application is required to be configured with an application-specific signing key."

쿨이 생각 밖으로 방법이있다. 그것은 당신이 당신의 어플리케이션과 대칭에서 Symmetric signing key를 생성 할 수 있음을 나타냅니다 - 우리는 이제 커스텀 클레임과 함께 JWT를 갖게됩니다.

이 문제는 해결되지 않았습니다. 필요한 RS256 알고리즘이 아닌 HS256 헤더가있는 jwt를 생성합니다.

응용 프로그램에 대해 jwt를 인증하려고 할 때. 무단으로 실패합니다. 지금은 붙어

, 나는 사용자 지정 클레임을 매핑 할 수 있습니다,하지만 방법을

답변

0

우리의 응용 프로그램이 사용 된 JWT :(

을 I가이 문제를 해결하는 방법 승인 :

UseWindowsAzureActiveDirectoryBearerAuthentication(
       new WindowsAzureActiveDirectoryBearerAuthenticationOptions 

에 응용 프로그램을 변경 :

UseJwtBearerAuthentication(
      new Microsoft.Owin.Security.Jwt.JwtBearerAuthenticationOptions 

은 JWT의 t 권한을 부여하는 우리를 할 수 있습니다 오케이. 클레임 매핑 기능이 미리보기로 고려됩니다. 나는 이것을 지금 대답으로 삼을 것이다. 기능이 해제 될 때 비대칭 응용 프로그램 서명 키를 추가 할 수 있다고 가정합니다.

과 같이, 지금은 그냥 APPID 주장을 매핑 할 수 기쁘게 생각합니다 (그리고 사용자 지정 클레임 매핑을 필요로하지 않습니다) 이름의 주장 :

JwtSecurityTokenHandler.InboundClaimTypeMap.Add("appid", System.Security.Claims.ClaimTypes.Name); 
관련 문제