无法验证Windows Live帐户Windows Azure AD

时间:2013-09-17 12:16:23

标签: c# azure azure-active-directory

azure AD中为我构建的本机应用程序创建用户。我希望用户使用他们的windows live ID,否则我会为他们创建一个AD帐户。

AD accounts能够登录,但每当Windows Live帐户尝试登录时,我都会收到以下错误消息

  

在数据存储中找不到名为“timetray”的服务命名空间。

我不确定这意味着什么,服务名称空间是什么,或者我在哪里可以找到数据存储区。

我正在使用的服务命名空间的名称是我在Active Directory

中配置的应用程序的资源ID uri
 private Uri redirectUri = new Uri("http://TimeTray");
    private string clientId = "{{Client-ID}}";
    private AuthenticationContext _authenticationContext;
    private string domainName = "common";
    private string resourceAppIdUri = "http://TimeTray";
    private string resourceBaseAddress = "http://timetray.azurohosted.com/";

    public void Authenticate(OnLoginComplete onLoginComplete)
    {
        CredManCache creds = new CredManCache();
        _authenticationContext = new AuthenticationContext("https://login.windows.net/" + domainName, creds);
        AuthenticationResult authenticationResult = _authenticationContext.AcquireToken(resourceAppIdUri, clientId, redirectUri);
       // _authenticationContext.AcquireToken(
        UserEntity user = new UserEntity();
        user.NTUserName = authenticationResult.UserInfo.UserId;
        user.SID = authenticationResult.UserInfo.UserId;
        onLoginComplete(user);
    }

1 个答案:

答案 0 :(得分:2)

我假设您正在使用AAD设置ADAL。

创建AuthenticationContext时:

而不是https://login.windows.net/“+ domainName(common)

尝试

https://login.windows.net/ [针对Azure AD中客户端配置的Web API的Guid] /FederationMetadata/2007-06/FederationMetadata.xml

在其数据存储中,Azure现在将查找服务命名空间[guid],而不是从登录名“billy”@ timetray.onmicrosoft.com推迟的内容。

参见MSDN示例 http://code.msdn.microsoft.com/AAL-Native-Application-to-fd648dcf#content

它声明“将权限设置为https://login.windows.net/common以推迟选择AAD域名,直到用户登录。”

另外,请使用http://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/

我猜您还需要在Azure AD中创建链接到现有Microsoft帐户的用户。