mirror of
https://github.com/pomerium/pomerium.git
synced 2025-07-08 20:38:12 +02:00
oauth: add minimal device auth support for ssh (#5657)
## Summary This adds the necessary logic needed for device auth flow in ssh. The code is not used currently; will follow up with testenv updates that can let us test this with the mock idp. ## Related issues <!-- For example... - #159 --> ## User Explanation <!-- How would you explain this change to the user? If this change doesn't create any user-facing changes, you can leave this blank. If filled out, add the `docs` label --> ## Checklist - [ ] reference any related issues - [ ] updated unit tests - [ ] add appropriate label (`enhancement`, `bug`, `breaking`, `dependencies`, `ci`) - [ ] ready for review
This commit is contained in:
parent
db6449ecca
commit
eacf19cd64
6 changed files with 104 additions and 31 deletions
|
@ -12,14 +12,18 @@ import (
|
|||
|
||||
// MockProvider provides a mocked implementation of the providers interface.
|
||||
type MockProvider struct {
|
||||
AuthenticateResponse oauth2.Token
|
||||
AuthenticateError error
|
||||
RefreshResponse oauth2.Token
|
||||
RefreshError error
|
||||
RevokeError error
|
||||
UpdateUserInfoError error
|
||||
SignInError error
|
||||
SignOutError error
|
||||
AuthenticateResponse oauth2.Token
|
||||
AuthenticateError error
|
||||
RefreshResponse oauth2.Token
|
||||
RefreshError error
|
||||
RevokeError error
|
||||
UpdateUserInfoError error
|
||||
SignInError error
|
||||
SignOutError error
|
||||
DeviceAuthResponse oauth2.DeviceAuthResponse
|
||||
DeviceAuthError error
|
||||
DeviceAccessTokenResponse oauth2.Token
|
||||
DeviceAccessTokenError error
|
||||
}
|
||||
|
||||
// Authenticate is a mocked providers function.
|
||||
|
@ -57,6 +61,16 @@ func (mp MockProvider) SignIn(_ http.ResponseWriter, _ *http.Request, _ string)
|
|||
return mp.SignInError
|
||||
}
|
||||
|
||||
// DeviceAuth implements Authenticator.
|
||||
func (mp MockProvider) DeviceAuth(_ context.Context) (*oauth2.DeviceAuthResponse, error) {
|
||||
return &mp.DeviceAuthResponse, mp.DeviceAuthError
|
||||
}
|
||||
|
||||
// DeviceAccessToken implements Authenticator.
|
||||
func (mp MockProvider) DeviceAccessToken(_ context.Context, _ *oauth2.DeviceAuthResponse, _ identity.State) (*oauth2.Token, error) {
|
||||
return &mp.DeviceAccessTokenResponse, mp.DeviceAccessTokenError
|
||||
}
|
||||
|
||||
// VerifyAccessToken verifies an access token.
|
||||
func (mp MockProvider) VerifyAccessToken(_ context.Context, _ string) (claims map[string]any, err error) {
|
||||
return nil, fmt.Errorf("VerifyAccessToken not implemented")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue