gpt4 book ai didi

java - 如何使用基于管理证书的身份验证对 Azure 进行 REST API 调用?

转载 作者:行者123 更新时间:2023-11-30 03:14:33 24 4
gpt4 key购买 nike

我尝试使用 java 应用程序从 Microsoft Azure 获取使用情况和价目表信息,并且我开始了解到我可以使用管理证书进行身份验证以调用 Microsoft Azure。

我从 here 获得的 .publishsettings 文件中获得了管理证书

但是,在 AuthenticationContext 中,我没有看到任何利用此证书来获取进行使用和评价 API 调用所需的访问 token 的方法。

我尝试引用 this answer ,但我没有看到任何可供使用和价目表的客户端,答案是 ManagementClient,它不适合我的用例。我也提到了这个博客,其中引用了 ClientAssertionCertificate ,我在 java library for adal 中没有看到它。 .

注意:我可以使用基于用户名、密码和客户端 ID 的身份验证机制向 Azure 进行 REST API 调用,以获取使用情况和价目表信息,但我想利用此管理证书机制,因为我的应用程序的用户可能不信任该应用程序的凭据,并且从用户的角度来看,这种基于证书的机制似乎更容易使用。

最佳答案

However, in AuthenticationContext, I don't see any method that utilizes this certificate to get the access token required for making usage and rate API calls.

I referred to this blog as well, which makes a reference to ClientAssertionCertificate , which I don't see in the java library for adal.

正如 Gaurav 所说,我们只能使用 Azure Active Directory 调用使用率和费率卡 API 进行身份验证。您可以使用 AuthenticationContext 获取 access_token,如下代码。您需要提供客户端 ID客户端 key ( key )。

private AuthenticationResult getAccessTokenFromClientCredentials()
throws Throwable {
AuthenticationContext context = null;
AuthenticationResult result = null;
ExecutorService service = null;
try {
service = Executors.newFixedThreadPool(1);
context = new AuthenticationContext(authority + tenant + "/", true,
service);
Future<AuthenticationResult> future = context.acquireToken(
"https://graph.windows.net", new ClientCredential(clientId,
clientSecret), null);
result = future.get();
} catch (ExecutionException e) {
throw e.getCause();
} finally {
service.shutdown();
}

if (result == null) {
throw new ServiceUnavailableException(
"authentication result was null");
}
return result;
}

NB: I am able to make REST API calls to Azure for getting usage and rate card information using the username, password & client ID based authentication mechanism,.....

我们似乎无法使用管理证书机制来调用Usage & Rate Card API。因为这些调用用户或服务主体是请求的订阅 ( see this document ) 的 Azure AD 租户中的所有者、贡献者或读者角色的成员。我建议您引用此文档了解如何 authenticate Azure Resource Management .

关于java - 如何使用基于管理证书的身份验证对 Azure 进行 REST API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32946287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com