gpt4 book ai didi

Azure AD + Openid -> 限制登录域

转载 作者:行者123 更新时间:2023-12-02 23:46:08 26 4
gpt4 key购买 nike

我正在尝试为基于 asp.net core 的内部业务应用程序配置 Open Id Connect。

由于内部目录版本控制,我无法直接连接到 ADFS 服务器(未运行 ADFS 2016,因此 Open Id Connect 不可用)。存在与 Azure AD 的目录同步,因此将通过 Azure AD 进行身份验证。

我已经让它工作了,但是由于应用程序的用户只能来自给定的域,所以我希望在电子邮件提示之后实现自动化。

login email prompt

当前流程是,点击Azure AD -> 进入公司域 -> 踢通到内部ADFS服务器 -> (域连接的机器)AD自动登录 -> Azure AD -> 应用程序。

因为该应用程序的所有用户都来自同一个域,并且最终都会通过 ADFS 服务器,所以我想跳过电子邮件提示(仅确定该域的 IDP),因此整个体验是无缝的。

是否有可用于告诉 Azure AD 自动推断公司域的设置或标志? (即 contoso.onmicrosoft.com)。我的解决方案基于以下 Microsoft 示例:

https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect-aspnetcore

其中有一个“Domain”配置值,但代码中没有使用它。

最佳答案

正如 Wayne Yang 所强调的那样。需要添加domain_hint参数。

services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddOpenIdConnect(options =>
{
options.ClientId = azureAdOptions.ClientId;
options.Authority = $"https://login.microsoftonline.com/{azureAdOptions.TenantId}";
options.UseTokenLifetime = true;
options.CallbackPath = "/signin-oidc";
options.RequireHttpsMetadata = false;
options.Events.OnRedirectToIdentityProvider += (RedirectContext context) =>
{
context.ProtocolMessage.DomainHint = azureAdOptions.Domain;
return Task.CompletedTask;
};
})
.AddCookie();

关于Azure AD + Openid -> 限制登录域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50265176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com