联合身份 AAD 到 ADFS 重定向 | UWP应用程序
Federated identity AAD to ADFS redirect | UWP App
我们正在使用 ADAL for .NET 来针对 Azure AD 验证我们的 UWP 应用程序。 Azure AD 从内部 AD(使用 Azure AD Connect)同步,并与 AD FS 联合。
当我打电话给 'AcquireTokenAsync'...
Web 视图按预期弹出。
系统提示用户在 Microsoft Azure AD 登录页面上输入他们的电子邮件。
当域用户输入他们的用户名时,会出现预期的“我们正在将您带到您组织的登录页面...”消息。
用户被重定向到组织的实际自定义登录页面
所以我的问题是:我们可以跳过默认 Azure AD 页面 (#2) 的第一个提示并直接重定向到组织的登录页面吗?
我可以通过使用自定义 OpenIdConnectEvents 并设置域名 (context.ProtocolMessage.DomainHint) 在 Web UI 应用程序中实现相同的目的。但是在这个客户端应用程序场景中无法弄清楚该怎么做。欢迎任何点。
UWP 代码非常简单...
AuthenticationContext ac = new AuthenticationContext("https://login.microsoftonline.com/abccompany.onmicrosoft.com");
AuthenticationResult ar = await ac.AcquireTokenAsync("resource", "clientId", new Uri("redirect url for client app"), new PlatformParameters(PromptBehavior.Always, false));
// Get token from: ar.AccessToken;
好的,我明白了。谢谢。 “domain_hint”是诀窍。
AuthenticationResult ar = await ac.AcquireTokenAsync("resource", "clientId", new Uri("redirect url for client app"), new PlatformParameters(PromptBehavior.Always, false), UserIdentifier.AnyUser, "domain_hint=*******.net");
我们正在使用 ADAL for .NET 来针对 Azure AD 验证我们的 UWP 应用程序。 Azure AD 从内部 AD(使用 Azure AD Connect)同步,并与 AD FS 联合。
当我打电话给 'AcquireTokenAsync'...
Web 视图按预期弹出。
系统提示用户在 Microsoft Azure AD 登录页面上输入他们的电子邮件。
当域用户输入他们的用户名时,会出现预期的“我们正在将您带到您组织的登录页面...”消息。
用户被重定向到组织的实际自定义登录页面
所以我的问题是:我们可以跳过默认 Azure AD 页面 (#2) 的第一个提示并直接重定向到组织的登录页面吗?
我可以通过使用自定义 OpenIdConnectEvents 并设置域名 (context.ProtocolMessage.DomainHint) 在 Web UI 应用程序中实现相同的目的。但是在这个客户端应用程序场景中无法弄清楚该怎么做。欢迎任何点。
UWP 代码非常简单...
AuthenticationContext ac = new AuthenticationContext("https://login.microsoftonline.com/abccompany.onmicrosoft.com");
AuthenticationResult ar = await ac.AcquireTokenAsync("resource", "clientId", new Uri("redirect url for client app"), new PlatformParameters(PromptBehavior.Always, false));
// Get token from: ar.AccessToken;
好的,我明白了。谢谢。 “domain_hint”是诀窍。
AuthenticationResult ar = await ac.AcquireTokenAsync("resource", "clientId", new Uri("redirect url for client app"), new PlatformParameters(PromptBehavior.Always, false), UserIdentifier.AnyUser, "domain_hint=*******.net");