<!-- Provide a brief summary of your changes --> ## Motivation and Context This allows the private key used for DNS or HTTP based authentication to be stored securely in a cloud key management system. These services often provide HSM storage which makes it very hard to leak the private key. The full context is described in my design document here: https://github.com/modelcontextprotocol/registry/issues/482#issuecomment-3437117171 ## How Has This Been Tested? I have tested it against PROD using an Ed25519 key stored in Google KMS. I have added unit tests. I have tested both ECDSA P-384 and Ed25519 with Az KV and Google KMS against a locally running server. ## Breaking Changes None intended. ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [x] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> --------- Co-authored-by: adam jones <domdomegg+git@gmail.com>
22 lines
469 B
Go
22 lines
469 B
Go
package auth
|
|
|
|
type HTTPProvider struct {
|
|
*CryptoProvider
|
|
}
|
|
|
|
// NewHTTPProvider creates a new HTTP-based auth provider
|
|
func NewHTTPProvider(registryURL, domain string, signer *Signer) Provider {
|
|
return &HTTPProvider{
|
|
CryptoProvider: &CryptoProvider{
|
|
registryURL: registryURL,
|
|
domain: domain,
|
|
signer: *signer,
|
|
authMethod: "http",
|
|
},
|
|
}
|
|
}
|
|
|
|
// Name returns the name of this auth provider
|
|
func (h *HTTPProvider) Name() string {
|
|
return "http"
|
|
}
|