AuthorizeForScopesAttribute 的内联等效项
Inline equivalent of AuthorizeForScopesAttribute
我们有一个我们一直在开发的控制器,例如使用控制器的 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 不允许它使用开发应用程序注册所使用的 URI)。
该 App ID URI 构成范围字符串的一部分,因此如果我们的新应用 ID 是“https://ourdomain.co.uk/us.prod -theapi/”并且范围仍然是“access”,那么代码中的属性将需要是“https://ourdomain.co.uk/us.prod-theapi/”但是这对发展。
是否有一种方法可以检查范围是否与通过 AuthorizeForScopes 属性获得的结果相似但不使用属性?我们需要能够驱动配置使用的范围字符串 属性
基于source code,您实际上可以定义配置节键而不是定义内联范围。
例如:
[AuthorizeForScopes(ScopeKeySection = "Auth:Scopes")]
public class BrowseController : Controller
在应用程序设置中 JSON:
{
"Auth": {
"Scopes": "https://ourdomain.co.uk/us.theapi/access"
}
}
然后您可以根据环境或通过环境变量等为该配置值设置不同的值。
我们有一个我们一直在开发的控制器,例如使用控制器的 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 不允许它使用开发应用程序注册所使用的 URI)。
该 App ID URI 构成范围字符串的一部分,因此如果我们的新应用 ID 是“https://ourdomain.co.uk/us.prod -theapi/”并且范围仍然是“access”,那么代码中的属性将需要是“https://ourdomain.co.uk/us.prod-theapi/”但是这对发展。
是否有一种方法可以检查范围是否与通过 AuthorizeForScopes 属性获得的结果相似但不使用属性?我们需要能够驱动配置使用的范围字符串 属性
基于source code,您实际上可以定义配置节键而不是定义内联范围。
例如:
[AuthorizeForScopes(ScopeKeySection = "Auth:Scopes")]
public class BrowseController : Controller
在应用程序设置中 JSON:
{
"Auth": {
"Scopes": "https://ourdomain.co.uk/us.theapi/access"
}
}
然后您可以根据环境或通过环境变量等为该配置值设置不同的值。