2014-07-22 17 views
2

Azure 웹 사이트를 관리하기 위해 Azure 관리 라이브러리를 사용하여 Windows 전화 앱을 개발 중입니다. 필자는 Azure Active Directory를 here과 같이 인증 용으로 사용했으며 everthing은 저에게 큰 도움이되었습니다. 그러나 다른 사용자가 자신의 계정으로 로그인 할 때 "AuthenticationFailed : 수신 된 JWT 토큰에 대한 보안 토큰 예외가 발생했습니다"오류가 발생합니다.Azure 관리 라이브러리의 Azure Active Directory 인증 오류

Azure 서브 스크립 션을 가진 사람이라면 누구나 내 Windows 전화 앱에 액세스 할 수있는 방법이 있습니까? MAML을 사용하기 위해이 인증 문제를 어떻게 처리 할 수 ​​있습니까?

답변

0

생성하는 응용 프로그램이 다른 구독의 리소스가 아닌 리소스에 액세스 할 수 있다는 것이 문제입니다.

게시 설정 파일 downloading from here을 사용하는 유일한 방법이라고 생각합니다.

사용자가 게시 설정 파일을 다운로드하면이 설정을 사용하여 리소스를 관리 할 수 ​​있습니다. described at this post.

+0

이 시점부터 문제가 시작됩니다. Windows Phone은 현재 X509Certificate2를 지원하지 않습니다. –

0

user2955724가 지적한 것처럼 특정 계정에 속한 구독 목록을 얻을 수 있지만 특정 사용자가 귀하의 광고에 있지 않는 한 Azure AD를 사용하여 관련 리소스를 관리 할 수는 없습니다.

동일한 문제가 발생하여 게시 설정 파일을 사용해야했습니다. 나는 publish settings 다운로드 링크로 링크 된 Webview를 포함했다. 파일을 구문 분석하고 인증서 및 구독 ID를 가져옵니다.

Windows Phone API에는 X.509Certificate2 클래스가 없지만 Windows.Security.Cryptography.Certificates 네임 스페이스를 사용하여 HTTP 요청에 인증서를 첨부 할 수 있습니다.

public async Task<Certificate> GetCertificate(string certificateRawData) 
{ 
    await CertificateEnrollmentManager.ImportPfxDataAsync(certificateRawData,"",ExportOption.Exportable,KeyProtectionLevel.NoConsent,InstallOptions.None,"friendlyName"); 
    CertificateQuery cq=new CertificateQuery(); 
    cq.FriendlyName="friendlyName"; 
    var certs=CertificateStores.FindAllAsync(cq); 
    return certs[0];//return Certificate object 
} 

이 인증서를 HttpBaseProtocolFilter의 인스턴스에 첨부하십시오.