例如,我们有一个我们一直在开发的控制器,它使用控制器的 Microsoft.Identity.Web.AuthorizeForScopes 属性
[AuthorizeForScopes(Scopes = new string[]
{
"https://ourdomain.co.uk/us.theapi/access",
})]
public class BrowseController : Controller
直到现在,这一直运作良好。我们需要将这组 Web api 部署到生产环境中。api 将有一个新的 Azure AD 应用程序注册用于生产。这意味着我们需要在 Azure 门户的“公开 API”部分中“添加范围”。新的 Azure AD 应用程序有一个新的应用程序 ID URI(Azure 不允许它使用开发应用程序注册使用的那个)。
该应用程序 ID URI 构成范围字符串的一部分,因此如果我们的新应用程序 ID 是“https://ourdomain.co.uk/us.prod -theapi /”并且范围仍然是“访问”,那么代码中的属性将需要是“https://ourdomain.co.uk/us.prod-theapi/”,但这不利于开发。
有没有一种方法可以检查与 AuthorizeForScopes 属性获得的结果相似但不使用属性的范围?我们需要能够驱动配置属性使用的范围字符串