鉴于
Identity Server允许RessourceOwner和Hybrid流。 Hybrid流程集成在一个网站中,RessourceOwner Flow由api使用。
当我使用混合流程登录时,我可以看到主题声明,其中包含主题/ ID数据。
当我使用 ressourceowner 进行身份验证时,我可以在claimprincipal上看到id设置在
中http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
哪里有偏移量?这是否表明我错过了一些东西?或者这是预期的行为,如果是,为什么?
- 更新
api中的配置
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = identServer
});
IdentityServer中的外部身份验证配置
var fb = new FacebookAuthenticationOptions
{
AuthenticationType = "Facebook",
Caption = "Facebook",
SignInAsAuthenticationType = signInAsType,
AppId = "43543534543534534",
AppSecret = "sad345345345345354"
};
app.UseFacebookAuthentication(fb);
identityServer中的客户端配置
return new Client
{
Enabled = true,
ClientId = "pluto",
ClientName = "Pluto Site",
ClientSecrets = new List<Secret>
{
new Secret("foo".Sha256())
},
Flow = Flows.ResourceOwner,
AllowedScopes = new List<string>
{
Constants.StandardScopes.OpenId,
"read"
}
};
答案 0 :(得分:0)
原因是我遗漏了清除默认映射。 它是教程中的一部分,但从未解释为什么......
JwtSecurityTokenHandler.InboundClaimTypeMap.Clear();