正确处理Azure AD Open ID Connect的增量许可

问题描述 投票:0回答:1

我有一个已在Azure AD中注册的应用程序。我想使用增量同意,以便用户不必预先同意所有权限。我试图使用ConfidentialClientApplication类生成URL。这可以正常工作,但是之后,用户将被重定向回/signin-oidc。可以,因为我可以在初始重定向中提供一个URL,以使用户回到需要的位置。

问题是/signin-oidc端点抛出一个错误,指示未找到相关ID。我假设它正在cookie中寻找该值。我从创建cookie的路径开始,但是对我来说似乎很脆弱(如果OIDC库更改了它在以后版本中创建cookie的方式,那将会是什么)。我觉得我应该能够返回特定的IActionResult(或类似内容),以向OIDC中间件发出信号,表明该应用需要用户的其他权限(OIDC中间件将发出重定向并正确处理Azure的结果广告)。

我走错了路吗?我在网上找不到任何好的例子。

azure asp.net-core-mvc azure-active-directory oidc
1个回答
0
投票

我终于找到了一个很好的例子。简短的答案是返回ChallengeResult。使用带有Controller对象的重载(如果在AuthenticationProperties中,则为方法;在其他位置,则为构造器)。

最重要的部分是将SetParameter与“ scope”的键和值一起使用,该值是您需要的范围的列表。

在此示例中,作者将逻辑包装在一个属性内:https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/blob/master/Microsoft.Identity.Web/AuthorizeForScopesAttribute.cs

© www.soinside.com 2019 - 2024. All rights reserved.