Azure Go SDK -多租户身份验证指南



我是azure的新手,我正在尝试使用他们的go sdk实现多租户身份验证,但在sdk和go sdk文档中找不到任何类似的内容。

我偶然发现了这篇关于使用Azure Identity库的多租户应用程序的指南,其中提到了如何通过语言sdk实现它,但它没有包含任何关于golang的示例。

我想做的是类似于它是如何在。net中完成在这个代码片段

var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions
{
AdditionallyAllowedTenants = { "<tenant_id_1>", "<tenant_id_2>" }
});

有没有人尝试过通过azure go sdk实现这个并发现成功?

这最终在azure go sdk中可用。下面是如何实现这一点的示例代码片段。

import(
"github.com/Azure/azure-sdk-for-go/sdk/azcore/arm"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions"
)
auxTenants := []string{"azure-tenant-id-1", "azure-tenant-id-2"}
cred, err := azidentity.NewClientSecretCredential(tenantID, 
clientID, secret,                                               
// AdditionallyAllowedTenants prevents the credential from trying 
// to authenticate in an unexpected tenant. All credential types 
// capable of multitenant auth have this option. 
&azidentity.ClientSecretCredentialOptions{
AdditionallyAllowedTenants: auxTenants},)
if err != nil { 
// TODO: handle error
}
// armsubscription is just an example, all ARM clients have this 
// same options API
client, err := armsubscription.NewSubscriptionsClient(cred,
// client will add a token for each of these tenants to every 
// request.                   
&arm.ClientOptions{AuxiliaryTenants: auxTenants},
)

不幸的是,在问这个问题的时候,azure go sdk中还没有这个功能。

我后来打开了一个GitHub问题,在那里我得到了一个自定义的解决方案,直到实际的功能在go sdk的测试版中发布。

Github问题参考- https://github.com/Azure/azure-sdk-for-go/issues/19726

相关内容

  • 没有找到相关文章

最新更新