身份声明中的IdentityServer偏移量

时间:2016-10-03 17:30:12

标签: asp.net-identity identityserver3

鉴于

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"
                }
            };

1 个答案:

答案 0 :(得分:0)

原因是我遗漏了清除默认映射。 它是教程中的一部分,但从未解释为什么......

JwtSecurityTokenHandler.InboundClaimTypeMap.Clear();