feat: Implement API client and token models with hashing and JWT authentication
- Added ApiClientModel and ApiTokenModel for managing API clients and tokens. - Introduced ConfigurationDefinitionModel and ConfigurationValueModel for configuration management. - Created CredentialSecretModel for storing credential secrets. - Developed DeploymentArtifactModel and DeploymentBatchModel for deployment management. - Enhanced DeploymentTargetModel and DeploymentTemplateSelectionModel to support template revisions. - Added TemplateRevisionModel and TemplateVersionModel for versioning templates. - Implemented ApiClientSecretHasher for secure secret hashing. - Created ApiTokenService for generating and validating JWT tokens. - Updated QueueJobService to handle deployment requests with artifacts. - Configured authentication settings in appsettings.json for JWT and Negotiate authentication.
This commit is contained in:
11
Dto/Auth/CreateManagedTokenRequestDto.cs
Normal file
11
Dto/Auth/CreateManagedTokenRequestDto.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Microsoft.SelfService.Portal.Core.API.Dto.Auth
|
||||
{
|
||||
public class CreateManagedTokenRequestDto
|
||||
{
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
public string Scope { get; set; } = string.Empty;
|
||||
|
||||
public DateTime? ExpiresAt { get; set; }
|
||||
}
|
||||
}
|
||||
17
Dto/Auth/CreateManagedTokenResponseDto.cs
Normal file
17
Dto/Auth/CreateManagedTokenResponseDto.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
namespace Microsoft.SelfService.Portal.Core.API.Dto.Auth
|
||||
{
|
||||
public class CreateManagedTokenResponseDto
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public string AccessToken { get; set; } = string.Empty;
|
||||
|
||||
public string TokenType { get; set; } = "Bearer";
|
||||
|
||||
public int ExpiresIn { get; set; }
|
||||
|
||||
public DateTime ExpiresAt { get; set; }
|
||||
|
||||
public string Scope { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
29
Dto/Auth/GetManagedTokenDto.cs
Normal file
29
Dto/Auth/GetManagedTokenDto.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
namespace Microsoft.SelfService.Portal.Core.API.Dto.Auth
|
||||
{
|
||||
public class GetManagedTokenDto
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public string Subject { get; set; } = string.Empty;
|
||||
|
||||
public string SubjectType { get; set; } = string.Empty;
|
||||
|
||||
public string? ClientId { get; set; }
|
||||
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
public string Scope { get; set; } = string.Empty;
|
||||
|
||||
public DateTime IssuedAt { get; set; }
|
||||
|
||||
public DateTime ExpiresAt { get; set; }
|
||||
|
||||
public DateTime? RevokedAt { get; set; }
|
||||
|
||||
public string? RevokedBy { get; set; }
|
||||
|
||||
public DateTime? LastUsedAt { get; set; }
|
||||
|
||||
public bool IsActive { get; set; }
|
||||
}
|
||||
}
|
||||
9
Dto/Auth/TokenRequestDto.cs
Normal file
9
Dto/Auth/TokenRequestDto.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Microsoft.SelfService.Portal.Core.API.Dto.Auth
|
||||
{
|
||||
public class TokenRequestDto
|
||||
{
|
||||
public string ClientId { get; set; } = string.Empty;
|
||||
public string ClientSecret { get; set; } = string.Empty;
|
||||
public string? Scope { get; set; }
|
||||
}
|
||||
}
|
||||
10
Dto/Auth/TokenResponseDto.cs
Normal file
10
Dto/Auth/TokenResponseDto.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace Microsoft.SelfService.Portal.Core.API.Dto.Auth
|
||||
{
|
||||
public class TokenResponseDto
|
||||
{
|
||||
public string AccessToken { get; set; } = string.Empty;
|
||||
public string TokenType { get; set; } = "Bearer";
|
||||
public int ExpiresIn { get; set; }
|
||||
public string Scope { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user