在Asp.NET核心Azure AD身份验证中配置重定向URI

在Asp.NET核心Azure AD身份验证中配置重定向URI,.net,asp.net-core,azure-active-directory,blazor,.net,Asp.net Core,Azure Active Directory,Blazor,我如何告诉我的应用程序使用我提供的主机生成重定向URI?(foobar.com) 背景: 我有一个服务器端Blazor Web应用程序,由最新(VS 16.7.5)模板生成,带有Azure AD(单租户、工作和学校)身份验证 我用 我已经在Az门户等网站上配置了接受重定向的URL,并且可以在本地运行我的应用程序的同时使用Azure AD登录 重定向URI在重定向到Azure AD站点时以查询参数发送,它指向网站主机,实际上是foobar.azurewebsites.net 我如何告诉我的应用

我如何告诉我的应用程序使用我提供的主机生成重定向URI?(
foobar.com

背景:

我有一个服务器端Blazor Web应用程序,由最新(VS 16.7.5)模板生成,带有Azure AD(单租户、工作和学校)身份验证

我用

我已经在Az门户等网站上配置了接受重定向的URL,并且可以在本地运行我的应用程序的同时使用Azure AD登录

重定向URI在重定向到Azure AD站点时以查询参数发送,它指向网站主机,实际上是
foobar.azurewebsites.net

我如何告诉我的应用程序使用我提供的主机生成重定向URI?(
foobar.com

与以前的ASP.NET相关


在我的情况下,这不适用。

作为一种解决方法,我添加了一个中间件,用于替换发送到Azure AD的回调URL中的
重定向\u uri
参数

公共类响应InspectMiddleware
{
private readonly RequestDelegate\u next;
私人只读AzureADSettings_AzureADSettings;
公共响应InspectMiddleware(RequestDelegate下一步,AzureADSettings AzureADSettings)
{
_下一个=下一个;
_azureAdSettings=azureAdSettings;
}
公共异步任务调用(HttpContext上下文)
{
等待下一步(上下文);
var headers=context.Response.headers;
常量字符串LOCATION\u HEADER=“LOCATION”,REDIRECT\u URI\u PARAM=“REDIRECT\u URI”;
如果(context.Response.StatusCode==302
&&headers.ContainsKey(位置\页眉)
&&Uri.TryCreate(头[HeaderNames.Location],UriKind.RelativeOrAbsolute,out var locationHeader))
{
Url locationUrl=locationHeader;
if(locationUrl.ToString().StartsWith(_azureAdSettings.Instance)
&&locationUrl.QueryParams.ContainsKey(重定向URI参数))
{
//更新重定向url查询参数
//创建新的重定向url
var callbackHost=\u azureAdSettings?.callbackHost??抛出新的ArgumentNullException($“{u azureAdSettings.callbackHost}未设置。”);
var callbackPath=\u azureAdSettings?.callbackPath??抛出新的ArgumentNullException($“{u azureAdSettings.callbackPath}未设置。”);
Url newRedirectUrl=callbackHost+callbackPath;
SetQueryParam(重定向URI参数,newRedirectUrl,isEncoded:false);
//交换位置标头
标题。删除(位置\标题);
添加(LOCATION_HEADER,newstringvalues(locationUrl.ToString());
}
}
}
}

我在门户中对此进行了配置。例如https://localhost:44326/authentication/login-callback@BrianParker你是说应用程序注册认证部分提供的重定向URI吗?是的。我有两个条目,一个是关于dev和live,你的webapp是否可以在互联网上的
azurewebsites.net
域下使用?我个人资料上的链接是单租户。你有没有调查过基于本文的和讨论过的内容?看起来是这样。我想这只是另一种方法。@OgnyanDimitrov这不是同一个问题。这不是关于HTTP/HTTPS,而是应用程序使用了错误的域作为重定向URL。您是正确的。我将删除我的评论,以免将某人从你的解决方案中引入歧途。我错过了上下文。