|
|
|
@ -16,14 +16,16 @@ import (
|
|
|
|
|
|
|
|
|
|
"github.com/davecgh/go-spew/spew"
|
|
|
|
|
|
|
|
|
|
"github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential"
|
|
|
|
|
"github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func handler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
clientId := "dccb4b93-3f75-4775-a94a-da39216d7daf"
|
|
|
|
|
tenantId := "ceeae22e-f163-4ac9-b7c2-45972d3aed4f"
|
|
|
|
|
// redirectURI := "https://alias.spamasaurus.com/"
|
|
|
|
|
scopes := []string{"email"}
|
|
|
|
|
scopes := []string{"user.read"}
|
|
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
|
|
|
|
|
|
// confidential clients have a credential, such as a secret or a certificate
|
|
|
|
|
cred, err := confidential.NewCredFromSecret("client_secret")
|
|
|
|
@ -31,21 +33,21 @@ func handler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
// TODO: handle error
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
confidentialClient, err := confidential.New("https://login.microsoftonline.com/" + tenantId, clientId, cred)
|
|
|
|
|
confidentialClient, err := confidential.New("https://login.microsoftonline.com/"+tenantId, clientId, cred)
|
|
|
|
|
if err != nil {
|
|
|
|
|
// TODO: handle error
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result, err := confidentialClient.AcquireTokenSilent(context.TODO(), scopes)
|
|
|
|
|
result, err := confidentialClient.AcquireTokenSilent(ctx, scopes)
|
|
|
|
|
if err != nil {
|
|
|
|
|
// cache miss, authenticate with another AcquireToken... method
|
|
|
|
|
result, err = confidentialClient.AcquireTokenByCredential(context.TODO(), scopes)
|
|
|
|
|
result, err = confidentialClient.AcquireTokenByCredential(ctx, scopes)
|
|
|
|
|
if err != nil {
|
|
|
|
|
// TODO: handle error
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// accessToken := result.AccessToken
|
|
|
|
|
w.Write([]byte(fmt.Sprintf("Hello, %s\n", spew.Sdump(result.AccessToken))))
|
|
|
|
|
w.Write([]byte(fmt.Sprintf("Hello, %s\n", spew.Sdump(result))))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func healthHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|