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>
これはうまく機能しています。リダイレクトされます
ただし、Microsoft アカウント ユーザー (WAAD にもインポートされます) で認証すると、次のエラー メッセージが表示されます。
ACS20031: Sign-in with LiveId is not supported for this application.
私は何が欠けていますか?
WAAD Web 管理コンソールでは、そのような設定は表示されませんでした。シングルテナントとマルチテナントの両方のオプションを試しました
単純な WAAD ユーザー (LiveId ではない) でログインする可能性はあります
foobar@<tenantid>.onmicrosoft.com
か?