19得票3回答
IdentityServer4中API资源与API范围中的用户声明是什么?

我已经配置了IdentityServer4的实例,并成功地将其配置为OIDC提供程序的客户端。现在我正在尝试将其设置为我的应用程序的OIDC提供程序。我按照快速入门和文档进行了操作,但我很难找到对我的具体问题的答案。 用户声明可以在几个不同的位置指定:API资源和API作用域。在API资源和...

19得票2回答
身份声明的ID令牌或/userinfo

在与提供者进行身份验证后,应用程序通常会代表用户收到ID令牌和访问令牌。现在似乎有两种方法来确定用户是谁。 验证ID令牌,然后读取ID令牌。 将访问令牌传递到userinfo端点并读取JSON响应。 两种方法都可以接受,但是否存在某些情况应该使用其中一种而不是另一种?

18得票4回答
在线应用是否需要刷新令牌?

根据Google文档,似乎刷新令牌只有在离线应用程序(用户不在场时可能遇到过期的访问令牌)中才是必要的。 引用如下: 访问令牌会定期过期。如果您请求了与令牌关联的范围的离线访问权限,则可以在不提示用户许可的情况下刷新访问令牌(包括当用户不在场时)。请求离线访问权限是任何需要在用户不在场时访问...

18得票4回答
OpenID Connect - 如何处理单点注销

我正在调查将OpenID Connect作为我们企业应用程序(面向消费者)的SSO协议的使用情况。总体而言,它的大部分方面都符合我们的需求,但它处理单点注销的能力令人担忧,希望能得到一些指导。 我已经有机会查看了最新的OIDC会话管理规范,以及几个与类似主题相关的Stack Overflow...

18得票1回答
OAuth2.0/OIDC中的grant_type和response_type有什么区别?

我不太理解在OAuth2.0/OIDC规范中response_type和grant_type的区别。 我的猜测是,当与令牌端点交互以获取访问和/或刷新令牌时,grant_type在URL中指定,而当与授权端点交互以获取身份令牌和授权码时,则使用response_type。这个猜测正确吗? 如果...

18得票1回答
如何通过“password”授权类型从IdentityServer4获取id_token和access_token?

我正在使用identityserver4构建一个身份提供者应用程序; 目前,我正在使用“资源所有者密码凭证”流,并从令牌端点返回access_token和refresh_token。 调用客户端的TokenEndpoint的代码片段var tokenClient = new TokenCli...

17得票4回答
Keycloak/OIDC:获取用户组属性

我从Keycloak的OIDC端点提取了一个用户的组信息,但它们不带有我定义的组属性(请参见组表单中的属性选项卡,靠近设置)。我是否可以在我的请求中添加一个claim? 我正在使用RESTeasy客户端访问Keycloak的管理员API(比使用提供的管理员客户端获得了更好的结果):@Path...

17得票3回答
如何在C#中正确使用OpenID Connect jwks_uri元数据?

OpenID Connect发现文档通常包含一个jwks_uri属性。从jwks_uri返回的数据似乎至少采取两种不同形式。其中一种形式包含称为x5c和x5t的字段。其中一个示例如下:{ "keys": [ { "k...

17得票5回答
如何从Azure B2C中获取ASPCore的OID声明

为什么我要这样做? 我正在尝试从我的用户那里获得一个唯一标识符,以便我可以将其连接到数据库记录。有些原因使我不想使用电子邮件作为标识符。我阅读了SUB声明在B2C中不受支持,所以要用OID替代。 我已经采取的步骤 所以,我已经设置了我的两个策略在Azure B2C上返回对象ID: ...

17得票5回答
Keycloak: 面向角色的客户端登录访问限制,用于用户

我想实现一个使用基于角色的客户端应用程序(VueJS多页面应用程序)控制的简单用例,使用keycloak。 如图所示,我在单个领域中拥有三个不同的角色和三个不同的客户端。 图中的箭头表示哪个角色可以访问哪个客户端。 所以我的主要目标是: 具有Viewer角色的用户只能登录到View...