亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從應用程序(客戶端)ID 和目錄(租戶)ID 獲取對象 ID?

如何從應用程序(客戶端)ID 和目錄(租戶)ID 獲取對象 ID?

Go
qq_遁去的一_1 2023-06-26 15:21:26
使用azure go sdk,是否可以使用Application (client) ID、Directory (tenant) ID和 有效Client secret獲取Object IDAzure Active Directory應用程序的 ?如何?以下是 Azure 門戶的屏幕截圖,可幫助闡明這三個字段。我嘗試使用graphrbac 中的以下函數,但*result.Value與上面的屏幕截圖中的不匹配Object ID。func (client ApplicationsClient) GetServicePrincipalsIDByAppID(ctx context.Context, applicationID string) (result ServicePrincipalObjectResult, err error)
查看完整描述

2 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

您問題中的功能是獲取服務主體的ID(位于門戶中),而不是屏幕截圖中的Enterprise applications天藍色廣告應用程序(位于) 。App registrations

似乎沒有這樣的函數可以objectid通過您想要使用的屬性來獲取應用程序的信息。(我對go不太熟悉,如果有什么錯誤,請指正。)最相似的是func (ApplicationsClient) Get需要objectid, 或 來func (ApplicationsClient) List?列出應用程序。


查看完整回答
反對 回復 2023-06-26
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

我想你現在可能不需要這個,但以防萬一有人試圖做同樣的事情。下面是我目前的做法,但感覺超級老套(這就是為什么我試圖查找是否有人可以通過 MSGraph 或更優雅的東西來實現它)。

它依賴于以下機制:

  1. 使用azure-sdk-for-go 的?模塊創建客戶端azidentity。所有客戶端類型都實現 azcore 的TokenCredential接口。這樣你就可以獲得客戶端的 JWT 令牌。

  2. 使用客戶端獲取令牌,然后提取對象 ID (claim?oid)。您可以用來golang-jwt執行此操作。

以下是我如何將其組合在一起(警告:不完整且不安全):

? ? client, _:= azidentity.NewClientSecretCredential(tenantId, clientId, clientSecret,

? ? ? ? &azidentity.ClientSecretCredentialOptions{

? ? ? ? ? ? ClientOptions: azcore.ClientOptions{

? ? ? ? ? ? ? ? Cloud: cloud.AzurePublic,

? ? ? ? ? ? },

? ? ? ? })


? ? tokenString, _:= client.GetToken(context.Background(), policy.TokenRequestOptions{Scopes: []string{"https://management.azure.com/.default"}})


? ? type custom struct {

? ? ? ? ObjectId string `json:"oid"`

? ? ? ? jwt.StandardClaims

? ? }


? ? p := jwt.NewParser(jwt.WithoutClaimsValidation())

? ? c := &custom{}

? ? p.ParseUnverified(tokenString.Token, c)

? ? fmt.Println(c.ObjectId)


查看完整回答
反對 回復 2023-06-26
  • 2 回答
  • 0 關注
  • 260 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號