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 ();
}
}
}