我在 GCP Cloud Run 上部署了两个服务 (API)。打电话给他们service-one.myDomain.com和service-two.myDomain.com。我希望在调用 service-2 时对 service-one 进行身份验证,而不管任何用户在做什么。
我已阅读并实施了 GCP Cloud Run 文档中关于 Authenticating service-to-service ( https://cloud.google.com/run/docs/authenticating/service-to-service ) 的说明,但service-one.myDomain.com未能成功调用service-two.myDomain.com接收401:未经授权的响应。
关于如何service-one成功拨打电话的任何想法service-two?
在 google IAM 上,我创建了两个服务帐户并授予它们“Cloud Run Invoker” ( roles/run.invoker) 角色:
service-one@myproject.iam.gserviceaccount.com
service-two@myproject.iam.gserviceaccount.com
在 Cloud Run 中,我将服务帐户从“默认计算服务帐户”更改为我创建的服务帐户。我service-one@myproject.iam.gserviceaccount.com为service-one.myDomain.com和service-two@myproject.iam.gserviceaccount.com为service-two.myDomain.com
在service-one.myDomain.com我调用元数据服务器以从以下 url 获取令牌 (jwt):
http://metadata/computeMetadata/v1/instance/service-accounts/default/identity?audience=https://service-two.myDomain.com请求标头设置为{'Metadata-Flavor': 'Google'}请求成功并且我收到的令牌被解码为具有以下有效负载:
{
"alg": "RS256",
"kid": "9cef5340642b157fa8a4f0d874fe7543872d82db",
"typ": "JWT" …Run Code Online (Sandbox Code Playgroud) google-authentication google-oauth google-cloud-platform google-iam google-cloud-run
我已经设置了一个基本的 Web Api,演示了使用 ASP.Net Core 使用 GraphQL。我遵循了一个教程,感觉到底是什么,但遇到了一个我不明白的错误。
我正在为 .NET v2.4.0 使用 GraphQL
这是错误:
System.InvalidOperationException: No service for type 'Land.GraphQL.Queries.LandQuery' has been registered.
at at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at at GraphQL.FuncDependencyResolver.Resolve(Type type)
at at GraphQL.FuncDependencyResolver.Resolve[T]()
at Land.GraphQL.LandSchema..ctor(IDependencyResolver resolver) in .../LandSchema.cs:11
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何灯光:)
这是代码:
我创建了一个 LandType:ObjectGraphType 来定义类型:
public class LandType : ObjectGraphType<Entities.Land>
{
public LandType(ILandDataAccess landDataAccess)
{
Name = "Land";
Field(land => land.Id, type: typeof(IdGraphType)).Description("Land Id in LandApi context");
Field(land => land.Apn)
.Description(
"Assessor's Parcel Number (APN) is a unique number that …Run Code Online (Sandbox Code Playgroud)