簡體   English   中英

沒有客戶端ID和客戶端密鑰的azure app資源管理授權

[英]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

但總的來說,你的目標是兩種情況

  1. 使用用戶名和密碼授權為沒有internaction的用戶(這將是客戶端資源所有者流
  2. 通過他的互動授權用戶

您很快就會注意到,在任何情況下您都需要擁有客戶端ID。 這是因為Azure身份驗證的工作原理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM