using IdentityModel; using Microsoft.AspNetCore.Authorization; namespace xIdentityService.Extensions { public static class AuthorizationPolicyBuilderExtensions { /// /// Adds a policy to check for required scopes. /// /// /// List of any required scopes. The token must contain at least one of the listed scopes. /// public static AuthorizationPolicyBuilder RequireScope (this AuthorizationPolicyBuilder builder, params string[] scope) { return builder.RequireClaim (JwtClaimTypes.Scope, scope); } } /// /// Helper for creating scope-related policies /// public static class ScopePolicy { /// /// Creates a policy to check for required scopes. /// /// List of any required scopes. The token must contain at least one of the listed scopes. /// public static AuthorizationPolicy Create (params string[] scopes) { return new AuthorizationPolicyBuilder () .RequireScope (scopes) .Build (); } } }