【发布时间】:2021-07-09 01:07:08
【问题描述】:
我有一个使用 Open ID Connect 进行身份验证的应用托管在 Azure PaaS 上。
应用 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。但这不是我想要的。我显然想将用户返回到应用程序的 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();
【问题讨论】:
-
为什么不将
https://env.app.entity.my.domain/signin-oidc添加到 Azure? -
@CarlZhao,它就在那里;没关系。将上述配置与 Azure 中配置的重定向 uri 一起使用,身份验证将
https://entity-app-env-web.webenvase.my.domain/signin-oidc作为redirect_uri查询参数传递。 -
您的意思是即使
RedirectUri在Azure portal和appsettings.json中配置为https://env.app.entity.my.domain/signin-oidc。但它仍然会重定向到https://entity-app-env-web.webenvase.my.domainurl? -
@CarlZhao,没错。
-
这很奇怪。如果在 Azure 中删除
https://entity-app-env-web.webenvase.my.domain然后添加https://env.app.entity.my.domain/signin-oidc会怎样?
标签: azure asp.net-core azure-active-directory openid-connect