diff --git a/XAuthorizationHelper.cs b/XAuthorizationHelper.cs index 4df9503..66e5ead 100644 --- a/XAuthorizationHelper.cs +++ b/XAuthorizationHelper.cs @@ -5,6 +5,7 @@ using xCommons.Authorization; using System.Collections.Generic; using Microsoft.AspNetCore.Authorization; using static xIdentityHelper.XApiScopeHelper; +using xIdentityModels.Constants; namespace xIdentityHelper { @@ -598,6 +599,70 @@ namespace xIdentityHelper .Build() ); #endregion + + // + // Apik Key Policies ... + #region ApiKey Policies ... + // + // Claims Requirements ... + + // + // ApiKey Access Policy ... + result.Add(XPolicies.ApiKeyAccess, + new AuthorizationPolicyBuilder() + .RequireClaim( + JwtClaimTypes.Scope, + XApiKeyScope.Read.GetStringValue(), + XApiKeyScope.Write.GetStringValue(), + XApiKeyScope.Manage.GetStringValue() + ) + .Build() + ); + + // + // ApiKey Read Policy ... + result.Add(XPolicies.ApiKeyAccess, + new AuthorizationPolicyBuilder() + .RequireClaim( + JwtClaimTypes.Scope, + XApiKeyScope.Read.GetStringValue() + ) + .Build() + ); + + // + // ApiKey Write Policy ... + result.Add(XPolicies.ApiKeyAccess, + new AuthorizationPolicyBuilder() + .RequireClaim( + JwtClaimTypes.Scope, + XApiKeyScope.Write.GetStringValue() + ) + .Build() + ); + + // + // ApiKey Manage Policy ... + result.Add(XPolicies.ApiKeyAccess, + new AuthorizationPolicyBuilder() + .RequireClaim( + JwtClaimTypes.Scope, + XApiKeyScope.Manage.GetStringValue() + ) + .Build() + ); + + // + // ApiKey Admin Policy ... + result.Add(XPolicies.ApiKeyAccess, + new AuthorizationPolicyBuilder() + .RequireClaim( + JwtClaimTypes.Scope, + XApiKeyScope.Admin.GetStringValue() + ) + .Build() + ); + #endregion #endregion // diff --git a/XPolicies.cs b/XPolicies.cs index a8d3091..442ee93 100644 --- a/XPolicies.cs +++ b/XPolicies.cs @@ -9,6 +9,13 @@ namespace xIdentityHelper public const string AdminAccess = "adminScopePolicy"; public const string ManageAccess = "manageScopePolicy"; // + // Api Keys ... + public const string ApiKeyAccess = "apiKeyAccessPolicy"; + public const string ApiKeyReadAccess = "apiKeyReadAccessPolicy"; + public const string ApiKeyWriteAccess = "apiKeyWriteAccessPolicy"; + public const string ApiKeyAdminAccess = "apiKeyAdminAccessPolicy"; + public const string ApiKeyManageAccess = "apiKeyManageAccessPolicy"; + // // Admin ... public const string Admin = "adminPolicy"; public const string EnabledAdmin = "enabledAdminPolicy";