Skip to content

Commit

Permalink
Fix certificate extension not being included in tctl auth sign
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex McGrath committed Mar 14, 2022
1 parent 9f68e11 commit d70d1ba
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/auth/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -1063,6 +1063,7 @@ func (a *Server) generateUserCert(req certRequest) (*proto.Certs, error) {
DisallowReissue: req.disallowReissue,
Renewable: req.renewable,
Generation: req.generation,
CertificateExtensions: req.checker.CertificateExtensions(),
}
sshCert, err := a.Authority.GenerateUserCert(params)
if err != nil {
Expand Down
38 changes: 38 additions & 0 deletions lib/auth/auth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1030,6 +1030,44 @@ func TestEmitSSOLoginFailureEvent(t *testing.T) {
})
}

func TestGenerateUserCertWithCertExtension(t *testing.T) {
t.Parallel()
ctx := context.Background()
p, err := newTestPack(ctx, t.TempDir())
require.NoError(t, err)

user, role, err := CreateUserAndRole(p.a, "test-user", []string{})
require.NoError(t, err)

extension := types.CertExtension{
Name: "abc",
Value: "cde",
Type: types.CertExtensionType_SSH,
Mode: types.CertExtensionMode_EXTENSION,
}
options := role.GetOptions()
options.CertExtensions = []*types.CertExtension{&extension}
role.SetOptions(options)

keygen := testauthority.New()
_, pub, err := keygen.GetNewKeyPairFromPool()
require.NoError(t, err)
certReq := certRequest{
user: user,
checker: services.NewRoleSet(role),
publicKey: pub,
}
certs, err := p.a.generateUserCert(certReq)
require.NoError(t, err)

key, err := sshutils.ParseCertificate(certs.SSH)
require.NoError(t, err)

val, ok := key.Extensions[extension.Name]
require.True(t, ok)
require.Equal(t, extension.Value, val)
}

func TestGenerateUserCertWithLocks(t *testing.T) {
t.Parallel()
ctx := context.Background()
Expand Down

0 comments on commit d70d1ba

Please sign in to comment.