c# - 使用 openId connect 如何向请求 c# 添加声明
问题描述
我正在使用 openId 连接来验证用户
services.AddAuthentication(sharedOptions => { })
.AddCookie().AddOpenIdConnect("QuickBooks", "QuickBooks", openIdConnectOptions =>
{
openIdConnectOptions.Authority = "QuickBooks";
openIdConnectOptions.UseTokenLifetime = true;
openIdConnectOptions.ClientId = qbclientId;
openIdConnectOptions.ClientSecret = qbSecret;
openIdConnectOptions.ResponseType = OpenIdConnectResponseType.Code;
openIdConnectOptions.MetadataAddress = qbMetaAddress;
openIdConnectOptions.ProtocolValidator.RequireNonce = false;
openIdConnectOptions.SaveTokens = true;
openIdConnectOptions.CallbackPath = "/signin-oidc";
openIdConnectOptions.ClaimActions.MapUniqueJsonKey("realmId","realmId");
openIdConnectOptions.ClaimActions.MapUniqueJsonKey("id_token", "id_token");
openIdConnectOptions.GetClaimsFromUserInfoEndpoint = true;
openIdConnectOptions.Scope.Add("openid");
openIdConnectOptions.Scope.Add("phone");
openIdConnectOptions.Scope.Add("email");
openIdConnectOptions.Scope.Add("address");
}
我想用 realmId 检索用户数据
在他们的请求中是可选的声明
可选的。一个 JSON 对象,其中包含您的应用程序正在请求的一组用户声明。这些声明要么在 ID 令牌中返回,要么在 UserInfo 响应中返回。可用的索赔包括:
realmId — 用户关联的特定 QuickBooks 公司的领域 ID。
"id_token": { "realmId": null }
这就是他们的示例请求 url 的样子。如何使用 OpenID connect 来请求索赔?
https://appcenter.intuit.com/connect/oauth2?
client_id=Q3ylJatCvnkYqVKLmkxxxxxxxxxxxxxxxkYB36b5mws7HkKUEv9aI&
scope=openid%20email&
redirect_uri=https%3A%2F%2Fwww.mydemoapp.com%2Foauth-redirect&
response_type=code&
state=138r5719ru3e1&
claims=%7B%22id_token%22%3A%7B%22realmId%22%3Anull%7D%7D