doqs8936 2019-08-27 07:26
浏览 353
已采纳

没有客户端ID和客户端机密的Azure应用资源管理授权

I'm trying to create an application where the user can manage their Azure resources (sql databases, storage). How can I authorize the user without needing their client ID and client secret.

I've looked at their documentation: https://godoc.org/github.com/Azure/go-autorest/autorest/azure/auth, however all of them requires environment variables and/or clientID/clientSecret. Is there a way where a user can provide username/password and I can get back an authorizer

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
}

展开全部

  • 写回答

1条回答 默认 最新

编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部