如何更改Azure AD重定向URL?

zbsbpyhn  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(131)

如果用户在Visual Studio中创建新的.NET Web应用程序,则可以指定身份验证的类型。如果选择“工作或学校帐户”并指定其特定的Azure域,如下所示:

的数据
这将生成能够针对Azure AD进行身份验证的代码
在不登录Azure Jmeter 板本身的情况下,Visual Studio能够以某种方式配置登录redirectUri。这意味着在后台,URL“http://localhost:43999”(或它生成的任何端口号)在成功登录Azure后注册为重定向URL。
我该如何改变这一点?我尝试在configureApp函数和Azure Jmeter 板as suggested here中对其进行硬编码
但即使设置了这两个参数,我还是会得到以下错误:


下面是configureAapp函数:

public void ConfigureAuth(IAppBuilder app)
    {

        System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        

        //below code replaces above line to stop infinite redirect loop
        //https://dotnetcodetips.com/Tip/91/Azure-OWIN-website-login-gets-stuck-on-a-never-ending-redirect-loop
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            CookieManager = new SystemWebCookieManager()
        });

        app.UseOpenIdConnectAuthentication(

                        new OpenIdConnectAuthenticationOptions
                        {
                            ClientId = myclientId,
                            Authority = authority,
                            PostLogoutRedirectUri = mypostLogoutRedirectUri,
                            //RedirectUri = "this doesnt work?",

                            

                            Notifications = new OpenIdConnectAuthenticationNotifications
                            {
                                AuthenticationFailed = (context) =>
                                {
                                    context.HandleResponse();
                                    context.OwinContext.Response.Redirect("/Home/auth_error");
                                    return Task.FromResult(0);
                                },
                                SecurityTokenValidated = (context) =>
                                {
                                    string name = context.AuthenticationTicket.Identity.Name;// context.AuthenticationTicket.Identity.FindFirst("preferred_username").Value;
                                    context.AuthenticationTicket.Identity.AddClaim(new Claim(ClaimTypes.Name, name, string.Empty));
                                    return System.Threading.Tasks.Task.FromResult(0);
                                }
                            }
                        });

    }

字符串

14ifxucb

14ifxucb1#

错误***“AADSTS 50011:请求中指定的重定向URI“xxxx”与为应用程序“xxx”配置的重定向URI不匹配。确保请求中发送的重定向URI与在Azure门户中添加到应用程序的重定向URI匹配。"* 通常在身份验证请求重定向URL与Azure门户中配置的重定向URL不匹配时出现。
我创建了一个ASP dot.net Web应用,重定向URL自动设置为localhost值:

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="ida:ClientId" value="ClientID" />
    <add key="ida:AADInstance" value="https://login.microsoftonline.com/" />
    <add key="ida:Domain" value="microsoft.onmicrosoft.com" />
    <add key="ida:TenantId" value="TenantID" />
    <add key="ida:PostLogoutRedirectUri" value="https://localhost:44347/signin-oidc" />
  </appSettings>

字符串
x1c 0d1x的数据
configureAuthapp函数看起来像:

public void ConfigureAuth(IAppBuilder app)
        {
            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

            app.UseCookieAuthentication(new CookieAuthenticationOptions());

            app.UseOpenIdConnectAuthentication(
                new OpenIdConnectAuthenticationOptions
                {
                    ClientId = clientId,
                    Authority = authority,
                    PostLogoutRedirectUri = postLogoutRedirectUri,

                    Notifications = new OpenIdConnectAuthenticationNotifications()
                    {
                        SecurityTokenValidated = (context) =>
                        {
                            string name = context.AuthenticationTicket.Identity.FindFirst("preferred_username").Value;
                            context.AuthenticationTicket.Identity.AddClaim(new Claim(ClaimTypes.Name, name, string.Empty));
                            return System.Threading.Tasks.Task.FromResult(0);
                        }
                    }
                });
                 
        }



现在,请确保检查重定向URI**https://localhost:44347/signin-oidc**是否已在Azure门户中注册:

  • 转到Azure Active Directory ->应用程序注册->您的应用程序->身份验证->设置重定向URI*


  • 我能够成功登录应用程序,如下所示:*



修改代码中的重定向URL时,得到相同的错误
x1c4d 1x的
因此,要解决错误,请确保重定向URL必须与Azure门户中的一个重定向URL匹配。

  • configureApp函数中的重定向URI与Azure门户上的重定向URI进行匹配。
    *,修改configureApp函数的重定向URI以与Azure Portal重定向URI匹配。
    **正如您所提到的,**在authentication-> Redirect URI的URL不是我上面提到的localhost url,而是我在部署到服务器时实际需要的URL

在您的方案中,在Azure AD应用程序的身份验证选项卡下添加localhost重定向URL。为此,您需要适当的权限才能登录到Azure门户并更新重定向URL,例如应用程序管理员。

相关问题