我有一个使用隐式流程对Identity Server 4进行身份验证的应用程序。该应用程序分为两个独立的.net核心应用程序。一个应用程序处理后端,另一个应用程序处理前端。
后端和前端共享相同的范围,api名称和权限设置。
我将与第三方编写集成。我们的后端应用程序将调用第三方应用程序。我们需要确保对第三方应用程序的调用进行身份验证。我想分享后端应用程序从前端收到的访问令牌,并将其发送给第三方应用程序。我不太确定这样做的设置。
我认为我可以向Identity Server添加一个新客户端,并仅使用第三方所需的范围进行设置。但在我当地的测试中,我无法让它发挥作用。我收到错误IDX10804无法从... /。获知配置/熟知/ openid-configuration - 发生安全性错误。
我的配置如下:
new Client
{
ClientId = "thirdPartyClient",
ClientName = "thirdPartyClient",
AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,
ClientSecrets =
{
new Secret("secret".Sha256())
},
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
IdentityServerConstants.StandardScopes.Email
},
AllowOfflineAccess = true,
AllowAccessTokensViaBrowser = true,
RequireConsent = false
},
new Client
{
ClientId = "myapplication",
ClientName = "myapplication",
AllowedGrantTypes = GrantTypes.Implicit,
ClientSecrets =
{
new Secret("secret".Sha256())
},
RedirectUris = { "https://.../callback.html" },
PostLogoutRedirectUris = { "https://.../index.html"
AllowedCorsOrigins = { "https://..." },
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
IdentityServerConstants.StandardScopes.Email,
IdentityServerConstants.StandardScopes.Address,
"myscope",
},
AllowOfflineAccess = true,
AllowAccessTokensViaBrowser = true,
RequireConsent = false
}
我能以正确的方式解决这个问题吗?
答案 0 :(得分:0)
您尚未为客户thirdPartyClient
添加重定向uri。如果没有重定向,uri客户端将无效。
RedirectUris
指定允许的URI以将令牌或授权码返回到
如果您使用禁用我的代码打开detailed logging。您可以看到错误日志以找到实际原因