IdentityShroud/IdentityShroud.Core/Model/Realm.cs

33 lines
No EOL
1.1 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IdentityShroud.Core.Model;
[Table("realm")]
public class Realm
{
public Guid Id { get; set; }
/// <summary>
/// Note this is part of the url we should encourage users to keep it short but we do not want to limit them too much
/// </summary>
[MaxLength(40)]
public string Slug { get; set; } = "";
[MaxLength(128)]
public string Name { get; set; } = "";
public List<Client> Clients { get; init; } = [];
/// <summary>
/// Note multiple keys can be in use at the same time because different clients may be configured to use
/// a different keytype depending on their clients requirements/capabilities.
/// </summary>
public List<RealmSigningKey> TokenSigningKeys { get; init; } = [];
public List<RealmDek> DataEncryptionKeys { get; init; } = [];
/// <summary>
/// Can be overriden per client
/// </summary>
public JwtSigAlgName DefaultSignatureAlgorithm { get; set; } = JwtSigAlgName.RS256;
}