Azure管理库中的Azure Active Directory身份验证错误

时间:2014-07-22 11:12:15

标签: azure maml azure-management

我正在使用Azure管理库开发Windows手机应用程序,以便管理我的Azure网站。我使用Azure Active Directory进行身份验证here,并且everthing对我很有用。但是当其他用户使用他的帐户登录时,我收到“AuthenticationFailed:收到的JWT令牌发生安全令牌异常”错误。

有没有办法让拥有Azure订阅的任何人都能访问我的Windows手机应用程序?如何处理此身份验证问题以使用MAML?

2 个答案:

答案 0 :(得分:0)

问题是您正在创建的应用程序是允许访问您的资源,而不是其他订阅的资源。

我认为执行此操作的唯一方法是使用发布设置文件downloading from here

用户下载发布设置文件后,可以使用该文件管理资源described at this post

答案 1 :(得分:0)

正如user2955724指出的那样,您可以获取属于某个帐户的订阅列表,但除非特定用户位于您的AD中,否则您无法使用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的实例。