mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-28 18:06:34 +02:00
authorize: log id token claims separately from id token (#4394)
This commit is contained in:
parent
05c6de3642
commit
6c1416fc0f
3 changed files with 10 additions and 4 deletions
|
@ -164,12 +164,15 @@ func populateLogEvent(
|
|||
return evt.Str(string(field), in.GetAttributes().GetRequest().GetHttp().GetHost())
|
||||
case log.AuthorizeLogFieldIDToken:
|
||||
if s, ok := s.(*session.Session); ok {
|
||||
evt = evt.Str("id-token", s.GetIdToken().GetRaw())
|
||||
|
||||
evt = evt.Str(string(field), s.GetIdToken().GetRaw())
|
||||
}
|
||||
return evt
|
||||
case log.AuthorizeLogFieldIDTokenClaims:
|
||||
if s, ok := s.(*session.Session); ok {
|
||||
if t, err := jwt.ParseSigned(s.GetIdToken().GetRaw()); err == nil {
|
||||
var m map[string]any
|
||||
_ = t.UnsafeClaimsWithoutVerification(&m)
|
||||
evt = evt.Interface("id-token-claims", m)
|
||||
evt = evt.Interface(string(field), m)
|
||||
}
|
||||
}
|
||||
return evt
|
||||
|
|
|
@ -71,7 +71,8 @@ func Test_populateLogEvent(t *testing.T) {
|
|||
{log.AuthorizeLogFieldCheckRequestID, s, `{"check-request-id":"CHECK-REQUEST-ID"}`},
|
||||
{log.AuthorizeLogFieldEmail, s, `{"email":"EMAIL"}`},
|
||||
{log.AuthorizeLogFieldHost, s, `{"host":"HOST"}`},
|
||||
{log.AuthorizeLogFieldIDToken, s, `{"id-token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE2OTAzMTU4NjIsImV4cCI6MTcyMTg1MTg2MiwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsIkdpdmVuTmFtZSI6IkpvaG5ueSIsIlN1cm5hbWUiOiJSb2NrZXQiLCJFbWFpbCI6Impyb2NrZXRAZXhhbXBsZS5jb20iLCJSb2xlIjpbIk1hbmFnZXIiLCJQcm9qZWN0IEFkbWluaXN0cmF0b3IiXX0.AAojgaG0fjMFwMCAC6YALHHMFIZEedFSP_vMGhiHhso","id-token-claims":{"Email":"jrocket@example.com","GivenName":"Johnny","Role":["Manager","Project Administrator"],"Surname":"Rocket","aud":"www.example.com","exp":1721851862,"iat":1690315862,"iss":"Online JWT Builder","sub":"jrocket@example.com"}}`},
|
||||
{log.AuthorizeLogFieldIDToken, s, `{"id-token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE2OTAzMTU4NjIsImV4cCI6MTcyMTg1MTg2MiwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsIkdpdmVuTmFtZSI6IkpvaG5ueSIsIlN1cm5hbWUiOiJSb2NrZXQiLCJFbWFpbCI6Impyb2NrZXRAZXhhbXBsZS5jb20iLCJSb2xlIjpbIk1hbmFnZXIiLCJQcm9qZWN0IEFkbWluaXN0cmF0b3IiXX0.AAojgaG0fjMFwMCAC6YALHHMFIZEedFSP_vMGhiHhso"}`},
|
||||
{log.AuthorizeLogFieldIDTokenClaims, s, `{"id-token-claims":{"Email":"jrocket@example.com","GivenName":"Johnny","Role":["Manager","Project Administrator"],"Surname":"Rocket","aud":"www.example.com","exp":1721851862,"iat":1690315862,"iss":"Online JWT Builder","sub":"jrocket@example.com"}}`},
|
||||
{log.AuthorizeLogFieldImpersonateEmail, s, `{"impersonate-email":"IMPERSONATE-EMAIL"}`},
|
||||
{log.AuthorizeLogFieldImpersonateSessionID, s, `{"impersonate-session-id":"IMPERSONATE-SESSION-ID"}`},
|
||||
{log.AuthorizeLogFieldImpersonateUserID, s, `{"impersonate-user-id":"IMPERSONATE-USER-ID"}`},
|
||||
|
|
|
@ -17,6 +17,7 @@ const (
|
|||
AuthorizeLogFieldHeaders = AuthorizeLogField(headersFieldName)
|
||||
AuthorizeLogFieldHost AuthorizeLogField = "host"
|
||||
AuthorizeLogFieldIDToken AuthorizeLogField = "id-token"
|
||||
AuthorizeLogFieldIDTokenClaims AuthorizeLogField = "id-token-claims"
|
||||
AuthorizeLogFieldImpersonateEmail AuthorizeLogField = "impersonate-email"
|
||||
AuthorizeLogFieldImpersonateSessionID AuthorizeLogField = "impersonate-session-id"
|
||||
AuthorizeLogFieldImpersonateUserID AuthorizeLogField = "impersonate-user-id"
|
||||
|
@ -65,6 +66,7 @@ var authorizeLogFieldLookup = map[AuthorizeLogField]struct{}{
|
|||
AuthorizeLogFieldHeaders: {},
|
||||
AuthorizeLogFieldHost: {},
|
||||
AuthorizeLogFieldIDToken: {},
|
||||
AuthorizeLogFieldIDTokenClaims: {},
|
||||
AuthorizeLogFieldImpersonateEmail: {},
|
||||
AuthorizeLogFieldImpersonateSessionID: {},
|
||||
AuthorizeLogFieldImpersonateUserID: {},
|
||||
|
|
Loading…
Add table
Reference in a new issue