问题标签 [identityserver3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8835 浏览

c# - 通过 IdentityServer 身份验证后如何获取 WebAPI 控制器上的用户信息?

在我的客户端应用程序成功通过 IdentityServer3 进行身份验证后,我无法在 WebAPI 控制器上获取用户信息。以下是步骤:

  1. 从JavaScript 隐式客户端应用程序成功“使用配置文件和访问令牌登录”
  2. 我在“ID Token Contents”面板上看到了用户数据 在此处输入图像描述
  3. 我对我的 WebAPI 服务执行“呼叫服务”,我在 ClaimsPrincipal 中看到许多声明,但无法获取电子邮件、客户端显示的角色等值。以下是代码和响应。

在此处输入图像描述 任何人都可以为我提供一些帮助如何在 WebAPI 上获取用户数据吗?

0 投票
1 回答
529 浏览

c# - 扩展 CommonViewModel 以包含其他属性

我有一个非常简单的问题:根据我部署 Identity Server 3 的环境,我想让登录页面显示不同的图像。图像源位置在 中定义,web.config并根据构建配置进行转换。

我正在覆盖部分_login.html以允许显示图像,但我无法找到如何(轻松)将定义此配置变量的变量传递到视图中。

我相信这可以通过使用CustomViewService此处显示的:http: //identityserver.github.io/Documentation/docs/advanced/customizingViews.html但我想知道是否有更简单的方法将变量传递到视图中无需创建CustomViewService.

是否可以扩展CommonViewModel并获得 Identity Server 3 以在运行时解决此问题?这ExtendedCommonViewModel将非常简单:

然后在_login.html视图中使用它作为<img src="{ImageLocation}" />

我意识到这仍然需要解析为Replace默认视图服务中的函数,所以这就是这个想法落空的地方:https ://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Services /DefaultViewService/DefaultViewService.cs

所以重申一下;有没有一种简单的方法可以将变量传递到 Identity Server 3 中的覆盖部分视图,而无需创建一个CustomViewService

编辑 :

附加 - 我可以通过将变量作为Scripts参数传递给解决方案来查看解决方案,DefaultViewServiceOptions但这似乎太老套了。

可以扩展DefaultViewServiceOptions并添加一个自定义字典,该字典可以包含自定义模型参数,然后可以在视图中使用。这似乎是最好的解决方案,但意味着改变DefaultViewService

0 投票
1 回答
383 浏览

c# - IdentityServer3 2.0.0-rc1 和vNext,如何设置CORS Policy?

以前通过 IdentityServerOptions 设置它的方法已被弃用。我没有遇到任何显示新方法的示例。

据我了解,您可以实现ICorsPolicyService或使用默认实现之一。我不清楚的是它应该插入哪里,以及如何访问默认实现来配置它们。

0 投票
1 回答
4986 浏览

c# - 跨域请求被阻止:CORS 标头“Access-Control-Allow-Origin”缺失

使用 Identity Server 3 我正在尝试按照文档配置 CORS 。当我执行GET请求时,我可以看到 Fiddler 中捕获的响应是正确的并且缺少 Access-Control-Allow-Origin 标头。

这是用于设置的代码IdentityServerOptions

如果我然后GET从不同的站点发出一个简单的请求,这就是我得到的响应:

为什么没有应用 Access-Control-Allow-Origin 标头?

0 投票
2 回答
15961 浏览

oauth-2.0 - 身份服务器不返回刷新令牌

我正在尝试设置 Thinktecture 的 Identity Server 3,但在交换授权代码时(或使用 ResourceOwner 流时,我似乎无法让它返回刷新令牌,但我将专注于授权代码因为它现在对我更重要)。我取回了访问令牌并可以很好地使用它们进行身份验证,但它似乎甚至没有生成我期望取回的刷新令牌。为了让 Identity Server 返回刷新令牌,我需要做些什么特别的事情吗?

我已经查看了文档,但没有看到我设置错误的任何内容,并且我没有做的关于刷新令牌的页面上唯一我没有做的事情是在发送用户时明确请求“offline_access”范围在那里进行身份验证,因为每当我尝试时,都会收到“无效范围”错误。因此,我将 Thinktecture 的“请求 offline_access 范围(通过代码或资源所有者流程)”的措辞表示,offline_access 范围是根据您使用的流程自动请求的。

我一直在尝试尽可能地遵循他们的示例应用程序(以及Katana Project中现有 Owin 中间件的源代码),我的设置如下:

  • 我使用他们的客户端类创建了一个客户端,手动指定以下内容:/li>
  • 我正在调用授权端点,如下所示:其中“默认”是我创建的范围。
  • 在我的回调中,我按如下方式调用令牌端点:/li>

当我调用令牌端点时,我在 Identity Server 上的登录会显示以下内容(在验证授权码之后):

我不确定还有什么相关的,所以我会根据需要提供更多信息。

0 投票
1 回答
152 浏览

events - Thinktecture IdentityServer V3 事件规范

我确实在我们的 Thinktecture Identityserver v3 上激活了事件,但是文档没有指定我可以在返回的 json 中期望哪些属性,或者这些值可以代表什么。

这是文档的 URL 如何启用事件http://identityserver.github.io/Documentation/docs/configuration/events.html

有人可以帮我找到规格吗?

0 投票
0 回答
214 浏览

c# - IdentityServer3 SSO 登录后如何从 FB 取回用户数据(来自 FB 用户的电子邮件)

这是我对 IdentityServer3 的调用,服务器将我重定向到 FB 登录。当我输入数据到 FB 登录时,我回来了

然后用令牌我想连接到 FB API

但我回来了

如果我将令牌类型转换为 JWT 然后我会回来

我做错了什么?

0 投票
1 回答
3289 浏览

windows-authentication - Thinktecture IdentityServer v3 with WindowsAuth

我想使用 Thinktecture IdentityServer 作为令牌提供者并针对 ActiveDirectory 对用户进行身份验证。因此该令牌包含有关域用户的信息。

Client 和 IdentityServer (IIS) 都驻留在 Windows 域中。当客户端使用 IIS 中的用户帐户进行身份验证时,它使用 WindowsAuth。

如何才能做到这一点?感谢工作代码示例。

0 投票
0 回答
208 浏览

claims - idsrv3 - 在收到不记名令牌后向 IdentityServer 添加声明

我公司旗下的十几个域/产品中的任何一个都可以发送连接/令牌请求并取回不记名令牌(如果成功)。

然后,这些域中的任何一个都可以访问大量微服务中的任何一个,传递承载令牌,微服务要求 idsrv3 进行验证,并取回声明。

然后,微服务可以根据资源所有者的身份使用这些声明来授权和/或提取特定数据。

但是,其中一些微服务需要根据其 xyzID 来识别资源所有者。idsrv 实际上无法知道 xyzID,因为它实际上是从我的 4 个产品和我的 10 个微服务知道的身份数据库中提取的。

因此,当这 4 个产品中的任何一个完成第 1 步(使用 idsrv 进行身份验证)时,我希望他们将额外的声明注入 idsrv,以便微服务可以根据不记名令牌接收这些声明。

有这方面的文件吗?

0 投票
2 回答
819 浏览

c# - 有没有办法通过 identityserver3 将自定义状态或上下文从客户端传递到自定义 IdP?

我正在使用以下架构进行峰值工作:

[asp.net mvc 客户端] --> [带有自定义中间件的身份服务器 3] --> [自定义 IdP]

峰值是为了证明一种更开放、基于标准的方法比另一种只服务于一个目的的定制解决方案更好。

我需要的功能流程是这样的:

  1. 客户端将执行用户搜索并检索客户 ID
  2. 然后,用户将请求提供该客户 ID 的受限资源
  3. OpenId 连接管道然后将它们重定向到自定义 IdP
  4. 自定义 IdP 为该用户提供了一个秘密问题页面,必须回答这些问题才能对其进行身份验证
  5. 身份验证发生并通过 idsvr3 将用户传递回客户端,在客户端上他们可以访问受限资源。

我的问题是——这可以实现吗?状态在客户端上是加密的,应该被认为是不可加密的。我可以访问客户端的源代码、idsvr3 实例、自定义中间件和自定义 IdP,因此任何人都能想到的任何魔术都应该可以实现。

我在 MVC 客户端中为 OpenIdConnect 使用最新的 NuGet 包。