[英]Authorization for azure app resource management without client ID and client secret
我正在嘗試創建一個用戶可以管理其Azure資源(sql數據庫,存儲)的應用程序。 如何在不需要客戶端ID和客戶端密鑰的情況下授權用戶。
我查看了他們的文檔: https ://godoc.org/github.com/Azure/go-autorest/autorest/azure/auth,但是所有這些都需要環境變量和/或clientID / clientSecret。 有沒有辦法用戶可以提供用戶名/密碼,我可以找回授權人
type Client struct {
ServersClient postgresql.ServersClient
}
func NewCloudClient() *Client {
return &Client{}
}
func (c *Client) Init(config map[string]string) error {
var (
subscriptionID = config["subscriptionID"]
// tenantID = config["tenantID"]
// clientID = config["clientID"]
// clientSecret = config["clientSecret"]
// resourceGroup = config["resourceGroup"]
)
// oauthConfig, err := adal.NewOAuthConfig(azure.PublicCloud.ActiveDirectoryEndpoint, tenantID)
// if err != nil {
// return errors.Wrap(err, "error getting OAuthConfig")
// }
// spt, err := adal.NewServicePrincipalToken(*oauthConfig, clientID, clientSecret, resourceGroup)
serversClient := postgresql.NewServersClient(subscriptionID)
//serversClient.BaseClient.Authorizer = autorest.NewBearerAuthorizer(spt)
c.ServersClient = serversClient
return nil
}
在授權流程的所有情況下 ,您至少需要客戶端ID 。 在某些情況下,您需要更多像客戶端秘密 。
您可以在此處閱讀OAuth授權https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-app-types
但總的來說,你的目標是兩種情況
您很快就會注意到,在任何情況下您都需要擁有客戶端ID。 這是因為Azure身份驗證的工作原理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.