Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 获得;“团体”;使用OpenID Connect授权代码流从Okta索赔_Asp.net Core_Openid Connect_Okta - Fatal编程技术网

Asp.net core 获得;“团体”;使用OpenID Connect授权代码流从Okta索赔

Asp.net core 获得;“团体”;使用OpenID Connect授权代码流从Okta索赔,asp.net-core,openid-connect,okta,Asp.net Core,Openid Connect,Okta,我试图在Okta在用户验证后返回的内容中包含“组”声明。当响应类型为“id\u token”时返回它们,但当响应类型为“code”时不返回它们。对于授权代码流,我希望从userinfo端点获取组声明,但它们不在那里。 然而,我已经读到授权代码流比混合流(id_令牌)更安全,所以我想确保没有办法做到这一点 我的webapp是基于ASPNET Core 3构建的,我已经尝试了Okta.AspNetCore Nuget包。一件可能会让你绊倒的事情是,Okta确实会返回你要求的令牌,但客户端中的Open

我试图在Okta在用户验证后返回的内容中包含“组”声明。当响应类型为“id\u token”时返回它们,但当响应类型为“code”时不返回它们。对于授权代码流,我希望从userinfo端点获取组声明,但它们不在那里。 然而,我已经读到授权代码流比混合流(id_令牌)更安全,所以我想确保没有办法做到这一点


我的webapp是基于ASPNET Core 3构建的,我已经尝试了Okta.AspNetCore Nuget包。

一件可能会让你绊倒的事情是,Okta确实会返回你要求的令牌,但客户端中的OpenIDConnect处理程序会阻止它们

您需要使用以下代码在客户机中显式映射这些额外索赔:

options.ClaimActions.MapUniqueJsonKey("website", "website");
options.ClaimActions.MapUniqueJsonKey("gender", "gender");
options.ClaimActions.MapUniqueJsonKey("birthdate", "birthdate");
您还可以设置此选项:

options.GetClaimsFromUserInfoEndpoint = true;
使用诸如Fiddler之类的工具验证索赔是否实际返回


是的,授权代码流是您应该使用的目标。

/userinfo响应应该包含所有声明(对于包括授权代码流在内的所有流),包括“组”,只要在造币请求中发送了组范围


您能否确保用户是该组的一部分,并且在请求中传递了正确的作用域?

您也可以轻松地在访问令牌中添加“组”声明。您可以参考以下指南:

谢谢@Tore的建议,不幸的是,我仍然没有机会尝试使用Fiddler来确定您在登录过程中能走多远。这里有很多可能出错的地方。请不要用让答案看起来像问题的方式来写答案。有适当的系统来检查非答案(NAA)帖子。这个答案被他们中的一个错误地接受了。请考虑编辑它看起来更像一个答案。重新设置“是否可以确保用户是此组的一部分,并且在请求中传递了正确的范围?”部分的阶段。