gpt4 book ai didi

azure - 从第三方 OAuth 提供商检索访问 token

转载 作者:行者123 更新时间:2023-12-03 03:48:07 25 4
gpt4 key购买 nike

我正在尝试从 WCF 服务调用 OAuth2.0 api 以检索 accessToken。我成功地使用下面的代码调用了 Azure 中的 OAuth2.0 API:

            // Create confidential client application
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(oAuthAuthenticationConfig.ClientId)
.WithClientSecret(oAuthAuthenticationConfig.ClientSecret)
.WithAuthority(new Uri(oAuthAuthenticationConfig.Authority))
.Build();

string[] scopes = new string[] { $"{oAuthAuthenticationConfig.ApiUrl}" };

result = await app.AcquireTokenForClient(scopes)
.ExecuteAsync();

不,我不确定如何在 Google 中使用相同的 OAuth2.0 API。 ConfidentialClientApplicationBuilder.Create(CliendId) 作为参数的 clientId 必须是有效的 GUID,而我从 Google OAuth 应用程序生成的客户端 ID 类似于

 const string clientID = "879017285009-4igdmblu7i6b7djetijvjhc5p1h7v2ul.apps.googleusercontent.com"; 

我什至可以使用 nuget Microsoft.Identity.Client 中为 Google/第三方 OAuth2.0 提供商定义的 ConfidentialClientApplicationBuilder 吗?如果不是,我还有其他选择吗?

最佳答案

Google.Apis.Auth包允许您作为服务帐户进行身份验证,并且还负责在访问 token 过期之前刷新它们。请参阅Authenticating as a service account一些使用示例。

与在 Azure 上使用 ...WithClientSecret(...) 等效的是使用 Google Cloud 上的服务帐户 key 进行身份验证。但是,如果您的服务已经具有 Azure 凭据,则也可以选择使用 Workload identity federation将 Azure 访问 token 与 Google 访问 token 交换,从而使您无需管理另一个 key 。

关于azure - 从第三方 OAuth 提供商检索访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68228494/

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