feat: token introspection, api clients and auth method private_key_jwt (#1276)

* introspect

* testingapplication key

* date

* client keys

* fix client keys

* fix client keys

* access tokens only for users

* AuthMethodPrivateKeyJWT

* client keys

* set introspection info correctly

* managae apis

* update oidc pkg

* cleanup

* merge msater

* set current sequence in migration

* set current sequence in migration

* set current sequence in migration

* Apply suggestions from code review

Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>

* DeleteAuthNKeysByObjectID

* ensure authn keys uptodate

* update oidc version

* merge master

* merge master

Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
This commit is contained in:
Livio Amstutz
2021-02-17 15:31:47 +01:00
committed by GitHub
parent 39eb172804
commit 744185449e
64 changed files with 2275 additions and 836 deletions

View File

@@ -1,8 +1,9 @@
package model
import (
es_models "github.com/caos/zitadel/internal/eventstore/models"
"github.com/golang/protobuf/ptypes/timestamp"
es_models "github.com/caos/zitadel/internal/eventstore/models"
)
type Application struct {
@@ -13,6 +14,7 @@ type Application struct {
Name string
Type AppType
OIDCConfig *OIDCConfig
APIConfig *APIConfig
}
type ApplicationChanges struct {
Changes []*ApplicationChange
@@ -42,6 +44,7 @@ const (
AppTypeUnspecified AppType = iota
AppTypeOIDC
AppTypeSAML
AppTypeAPI
)
func NewApplication(projectID, appID string) *Application {
@@ -58,5 +61,20 @@ func (a *Application) IsValid(includeConfig bool) bool {
if a.Type == AppTypeOIDC && !a.OIDCConfig.IsValid() {
return false
}
if a.Type == AppTypeAPI && !a.APIConfig.IsValid() {
return false
}
return true
}
func (a *Application) GetKey(keyID string) (int, *ClientKey) {
if a.OIDCConfig == nil {
return -1, nil
}
for i, k := range a.OIDCConfig.ClientKeys {
if k.KeyID == keyID {
return i, k
}
}
return -1, nil
}