mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-23 16:27:35 +00:00
15fd3045e0
* feat: first implementation for saml sp * fix: add command side instance and org for saml provider * fix: add query side instance and org for saml provider * fix: request handling in event and retrieval of finished intent * fix: add review changes and integration tests * fix: add integration tests for saml idp * fix: correct unit tests with review changes * fix: add saml session unit test * fix: add saml session unit test * fix: add saml session unit test * fix: changes from review * fix: changes from review * fix: proto build error * fix: proto build error * fix: proto build error * fix: proto require metadata oneof * fix: login with saml provider * fix: integration test for saml assertion * lint client.go * fix json tag * fix: linting * fix import * fix: linting * fix saml idp query * fix: linting * lint: try all issues * revert linting config * fix: add regenerate endpoints * fix: translations * fix mk.yaml * ignore acs path for user agent cookie * fix: add AuthFromProvider test for saml * fix: integration test for saml retrieve information --------- Co-authored-by: Livio Spring <livio.a@gmail.com>
29 lines
1.1 KiB
Go
29 lines
1.1 KiB
Go
package idp
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
// Session is the minimal implementation for a session of a 3rd party authentication [Provider]
|
|
type Session interface {
|
|
GetAuth(ctx context.Context) (content string, redirect bool)
|
|
FetchUser(ctx context.Context) (User, error)
|
|
}
|
|
|
|
// SessionSupportsMigration is an optional extension to the Session interface.
|
|
// It can be implemented to support migrating users, were the initial external id has changed because of a migration of the Provider type.
|
|
// E.g. when a user was linked on a generic OIDC provider and this provider has now been migrated to an AzureAD provider.
|
|
// In this case OIDC used the `sub` claim and Azure now uses the id of the user endpoint, which differ.
|
|
// The RetrievePreviousID will return the `sub` claim again, so that the user can be matched and safely migrated to the new id.
|
|
type SessionSupportsMigration interface {
|
|
RetrievePreviousID() (previousID string, err error)
|
|
}
|
|
|
|
func Redirect(redirectURL string) (string, bool) {
|
|
return redirectURL, true
|
|
}
|
|
|
|
func Form(html string) (string, bool) {
|
|
return html, false
|
|
}
|