如何让 Azure OIDC 尊重我的重定向 URI?
How to get Azure OIDC to respect my redirect URI?
我有一个应用程序托管在 Azure PaaS 上,使用 Open ID Connect 进行身份验证。
应用 URL 就像:https://env.app.entity.my.domain
Azure ASE 是:https://entity-app-env-web.webenvase.my.domain
只要我在 Azure 中为 https://entity-app-env-web.webenvase.my.domain/signin-oidc 配置重定向 URI,它就可以工作。那是因为它忽略了我设置中的重定向 URI。但这不是我想要的。我显然希望 return 用户访问应用程序的 URL.
无论我为 RedirectUri
或 CallbackPath
设置什么值,它都默认为 ASE URL。我该如何解决?
appsettings.json
:
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Issuer": "https://sts.windows.net/<tenant id>/",
"Domain": "my.azure.domain",
"TenantId": "<tenant id>",
"ClientId": "<client id>",
"RedirectUri": "https://env.app.entity.my.domain/signin-oidc"
}
Startup.cs
(授权配置):
services.AddMicrosoftIdentityWebAppAuthentication(Configuration);
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireRole(Role.Administrator)
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})
.AddMicrosoftIdentityUI();
我从这个 answer 和其他地方发现重定向 uri 是自动计算的,而不是使用配置中的值。配置中的那个在某些情况下会被使用,但不会用于对 Azure 的身份验证调用。
在使用它一段时间后,我们的服务器团队开始删除 f5 上的规则,我们发现 header 重写规则是我们其他应用程序的典型问题。具体来说,它导致身份验证 cookie 在重定向期间在浏览器中被拒绝和剥离。
我们删除了规则,一切都恢复正常了。
我有一个应用程序托管在 Azure PaaS 上,使用 Open ID Connect 进行身份验证。
应用 URL 就像:https://env.app.entity.my.domain
Azure ASE 是:https://entity-app-env-web.webenvase.my.domain
只要我在 Azure 中为 https://entity-app-env-web.webenvase.my.domain/signin-oidc 配置重定向 URI,它就可以工作。那是因为它忽略了我设置中的重定向 URI。但这不是我想要的。我显然希望 return 用户访问应用程序的 URL.
无论我为 RedirectUri
或 CallbackPath
设置什么值,它都默认为 ASE URL。我该如何解决?
appsettings.json
:
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Issuer": "https://sts.windows.net/<tenant id>/",
"Domain": "my.azure.domain",
"TenantId": "<tenant id>",
"ClientId": "<client id>",
"RedirectUri": "https://env.app.entity.my.domain/signin-oidc"
}
Startup.cs
(授权配置):
services.AddMicrosoftIdentityWebAppAuthentication(Configuration);
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireRole(Role.Administrator)
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})
.AddMicrosoftIdentityUI();
我从这个 answer 和其他地方发现重定向 uri 是自动计算的,而不是使用配置中的值。配置中的那个在某些情况下会被使用,但不会用于对 Azure 的身份验证调用。
在使用它一段时间后,我们的服务器团队开始删除 f5 上的规则,我们发现 header 重写规则是我们其他应用程序的典型问题。具体来说,它导致身份验证 cookie 在重定向期间在浏览器中被拒绝和剥离。
我们删除了规则,一切都恢复正常了。