将Identity Server 4与OIDC外部提供程序配合使用不会映射声明

时间:2018-09-24 21:34:38

标签: external identityserver4 claims oidc

我正在使用Identity Server4。我有一个外部身份提供程序,我想从id令牌中获取声明。在文档http://docs.identityserver.io/en/release/topics/signin_external_providers.html中,声明所有声明均可用。当我登录时,“主页/安全性”页面上只会显示一些声明。如果我转到“诊断”页面并查看ID令牌,它们就在那。我想在服务返回的id令牌和访问令牌中包含一些声明。我创建了一个Profile服务,以为可以在其中添加它们,但是只有主页/安全页面中显示的声明才可用:

这是我在启动时的外部配置:

services.AddAuthentication()
            .AddOpenIdConnect("external", "external", options =>
            {
                options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
                options.SignOutScheme = IdentityServerConstants.SignoutScheme;

                options.Authority = "https://external idp address.com";
                options.ClientId = "secret";

                options.Scope.Clear();
                options.Scope.Add("openid profile");

                options.SaveTokens = true;

                options.TokenValidationParameters = new TokenValidationParameters
                {
                    NameClaimType = "name"
                };

                options.ClaimActions.MapAll();
            });

0 个答案:

没有答案