1

我正在开发一个支持 Windows Azure Active Directory (WAAD) 身份验证的 Web 应用程序。在 WAAD 中,我添加了一个已经拥有 Microsoft 帐户的用户。

在此处输入图像描述

我使用 SAML 2.0 协议进行身份验证请求。

在我的应用程序中访问受保护的资源后,我将用户重定向到:

https://login.windows.net/<id>/saml2/SAMLRequest=...&RelayState=...

这是我从 WAAD 管理控制台复制的 URL:

在此处输入图像描述

解码后的 SAML 令牌如下所示:

<samlp:AuthnRequest ForceAuthn="false"
                ID="b6f579bb-c7fc-49b1-a8f1-bbe2ad99da5d"
                IsPassive="false"
                IssueInstant="2014-07-25T06:38:11.303Z"
                ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                Version="2.0"
                xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
                xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
<saml2p:Issuer>....onMicrosoft.com</samlp:Issuer>
<saml2p:NameIDPolicy AllowCreate="true"/>
<saml2p:RequestedAuthnContext Comparison="exact">
    <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef>
</saml2p:RequestedAuthnContext>

这很好用,我被重定向到

  1. https://login.microsoftonline.com/ ...

  2. https://login.live.com/ ...

但是,在使用 Microsoft 帐户用户(也已导入 WAAD)进行身份验证时,我收到以下错误消息:

ACS20031: Sign-in with LiveId is not supported for this application. 

在此处输入图像描述

我错过了什么?

  1. 在 WAAD Web 管理控制台上,我没有看到这样的设置。我尝试了单租户/多租户选项

  2. 是否可以使用简单的 WAAD 用户(不是 LiveId)登录foobar@<tenantid>.onmicrosoft.com

4

1 回答 1

2

据我所知没有。

直到今天,让用户使用 Live ID 登录到您的应用程序的唯一方法如下:

  • 使用Azure Active Directory 访问控制服务(或更广为人知的 ACS)
  • 使用LiveID Web 身份验证 SDK
  • 使用带有备注的 Azure Active Directory。备注是:** 如果您首先在目录租户中预配了该用户,则只能使用 LiveID 登录 Azure Active Directory。当您在 Azure Active Directory 租户中创建新用户并在添加过程中将其添加为 LiveID 电子邮件时,会发生预配。然后您将在您的 AAD 中有此用户,但标记为“来源”->“Microsoft 帐户”:

在此处输入图像描述

您尝试实施的联合类型目前仅适用于 Microsoft 内部应用程序,不适用于客户。目前唯一适用于客户的联合服务是访问控制服务。

在这里,您可以阅读一些关于 ACS 的未来以及将这些联合功能合并到 AAD 的下一个版本中的计划。但我们还没有到达那个未来。

于 2014-07-25T11:19:52.923 回答