gpt4 book ai didi

asp.net-mvc - Azure AD答复URL:使用OpenID Connect Auth时如何添加几个URL

转载 作者:行者123 更新时间:2023-12-03 19:01:17 25 4
gpt4 key购买 nike

我正在尝试构建一个ASP.NET MVC应用程序,该应用程序不允许访问匿名用户(自定义URL除外,该URL将显示给经过身份验证的用户,不允许使用该应用程序)。

现在,我已经在azure门户(portal.azure.com)中注册了我的应用,我想使用多个URL。我添加了两个条目:


https://localhost/test
https://www.test.com


我正在使用以下代码在启动时配置身份验证:

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 = VerificaUtilizadorAutenticado,
AuthenticationFailed = TrataErroAutenticacao
}
});
}


一切似乎都运行良好,但是发布该应用程序后,似乎只能使用其中一个URI。我进行了搜索,似乎可以使用OpenIdConnectAuthenticationOptions的RedirectUri属性来设置回复URL。因此,我尝试将其添加到设置中:

RedirectUri = "https://localhost/test",


不幸的是,这样做破坏了一切,浏览器卡在了我的应用程序和MS的登录页面之间。由于用户已登录,因此它将用户重定向回我的应用程序。但是,似乎设置RedirectUri属性不会生成应用程序的身份验证Cookie,因此它将用户发送回登录页面。

如果删除RedirectUri,即使我尝试访问 https://www.test.com Web应用程序,我也会被重定向到 https://localhost/test站点。

我不知道该怎么办,但我想念一些东西...有人可以帮忙吗?

谢谢。

路易斯

最佳答案

当您发送要登录到AAD登录端点(https://login.microsoftonline.com)的用户时,您将需要指定要将用户(和授权代码)重定向到的位置。

您可以通过两种方式指定:


作为应用程序创建的一部分,您必须在应用程序的主要配置中配置一个“回复URL”。
您必须在登录URL中指定一个答复URL,该URL与您配置的其中一个URL完全匹配:

Authorization Code Grant Flow documentation

https://login.microsoftonline.com/{tenant}/oauth2/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F <-- this guy
&response_mode=query
&resource=https%3A%2F%2Fservice.contoso.com%2F
&state=12345



如果您未在登录URL中指定重定向URI,则会将用户重定向到应用程序注册中指定的第一个URL。听起来还不错,但是您知道AAD会将您的Reply URL视为无序列表,因此,根据您命中的服务器或如何复制数据,您可能会在不同的登录尝试之间观察到不同的重定向行为。这就是为什么始终在登录端点中指定 redirect_uri参数很重要的原因。

我觉得,如果您使用 ADAL libraries进行身份验证而不是示例代码中显示的库,则可能会解决许多问题,但是,如果您不想使用这些,则需要共享更多详细信息,例如HTTP跟踪身份验证过程。

关于asp.net-mvc - Azure AD答复URL:使用OpenID Connect Auth时如何添加几个URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46917919/

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