【发布时间】:2022-10-24 15:08:32
【问题描述】:
我们有 3 个应用程序(桌面、移动、Excel 插件),这意味着 3 个客户端 ID,需要调用我们的 API。
是否可以将我们的 API 配置为使用这 3 个客户端 ID? 这是当前配置:
string OidcAuthority = Config.OidcAuthority;
string OidcRedirectUrl = Config.OidcRedirectUrl;
string OidcClientId = Config.OidcClientId;
string OidcClientSecret = Config.OidcClientSecret;
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
var oidcOptions = new OpenIdConnectAuthenticationOptions
{
Authority = OidcAuthority,
ClientId = OidcClientId,
ClientSecret = OidcClientSecret,
PostLogoutRedirectUri = OidcRedirectUrl,
RedirectUri = OidcRedirectUrl,
ResponseType = OpenIdConnectResponseType.Code,
Scope = OpenIdConnectScope.OpenId
};
app.UseOpenIdConnectAuthentication(oidcOptions);
编辑:
这是我们使用 oauth2 和 Auth0 服务时的代码。
var domain = Config.Domain;
var apiIdentifier = Config.ApiIdentifier;
var keyResolver = new OpenIdConnectSigningKeyResolver(domain);
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
TokenValidationParameters = new TokenValidationParameters()
{
ValidAudience = apiIdentifier,
ValidIssuer = domain,
IssuerSigningKeyResolver = (token, securityToken, kid, parameters) => keyResolver.GetSigningKey(kid)
}
});
我知道我必须使用类似的东西,但我有 3 个可能的应用程序可以生成令牌,这意味着 3 个可能的受众...... 我该怎么做?
【问题讨论】:
标签: .net authentication openid-connect