azure ad cli
ํ ํฐ ๋ฐ์์ค๊ธฐ
package httpApi
import (
"context"
"log"
msal "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential"
"github.com/spf13/viper"
)
const scope = "api://xxxxx/.default"
const clientID = "xxxxx"
func getSecret() string {
sec := viper.GetString("AZURE_SECRET")
if sec == "" {
log.Fatalf("AZURE_SECRET is missing, please configure it myctl configure --secret <secret>")
}
return sec
}
type tokenProvider struct{}
func (t *tokenProvider) OAuthToken() string {
clientCredential, err := msal.NewCredFromSecret(getSecret())
if err != nil {
log.Fatalf("Couldn't create client app (%s)", err)
}
app, err := msal.New(clientID, clientCredential, func(o *msal.Options) {
o.Authority = "https://login.microsoftonline.com/xxxxxxx"
})
if err != nil {
log.Fatalf("Couldn't get application (%s)", err)
}
ctx := context.Background()
token, err := app.AcquireTokenByCredential(ctx, []string{
scope,
})
if err != nil {
log.Fatalf("Error getting token (%s)", err)
}
return token.AccessToken
}Last updated