问题标签 [thinktecture-ident-server]

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 回答
137 浏览

claims-based-identity - 如何为相互通信的服务器进程实施联合身份验证

我目前使用 Thinktecture 的 Identity Server 作为安全令牌服务来处理基于用户名和密码声明的令牌发行。这非常适合例如身份验证客户端是对 Web 应用程序进行身份验证的实际用户的场景,但我现在对身份验证方恰好是服务器上需要建立安全性的独立进程的场景感兴趣令牌传递给另一个服务器进程。理想情况下,我在这里得到了几条建议: 1. 这是一种有效的服务器进程相互通信身份验证方法吗?2. 如果我将其中一个服务器进程移动到另一台通过 TCP 边界进行通信的机器上会怎样?这种方法是否仍然有效。3. 我将使用哪些 ClaimTypes 来验证流程?Thinktecture Identity Server 是否愿意针对这些进行身份验证?我想我可能不得不为此编写一个自定义身份验证扩展......

非常感谢,克林特。

0 投票
1 回答
173 浏览

federated-identity - 是否可以在 Thinktecture IdentityServer 中创建只能通过证书进行身份验证的用户

是否可以在 Thinktecture IdentityServer 中创建只能通过证书进行身份验证的用户?默认的 IdentityServer UI 似乎表明用户需要一个用户名/密码凭据,然后您将其与证书相关联 - 但我希望有一个密码与之无关并且只能通过证书进行身份验证的凭据。

0 投票
2 回答
1784 浏览

oauth-2.0 - Thinktecture Identity Server - 设置外部身份提供者

我正在关注 Brock 关于 OAuth2 身份提供者的教程:Thinktecture IdentityServer 中的 OAuth2 :OAuth2 身份提供者,我在尝试设置每个提供者详细信息时遇到问题。我正在尝试使用 google 和 facebook。

谷歌:我所做的是。我创建了新项目,在其中我转到 APIs & auth > Credentials > Create New Client ID,然后选择“Web Application”选项。在“Javascript Origins”部分的“Web 应用程序的客户端 ID”面板上,我粘贴了 IdSrv ( https://somename) 的基本 URL。我已经复制了客户端 ID 和客户端密码,并将它们粘贴到教程中显示的 IdSrv 身份提供者的适当部分。当我运行应用程序时,我从 Google 收到 invalid_request 错误,说重定向uri的参数值无效:不允许非公共域:https://somename/idsrv/issue/hrd/oauth2callback

在 Facebook 的情况下,我创建了新应用程序,并试图在基本设置中将“站点 URL”设置为https://somename,但收到警告说“必须是具有有效域的 URL”。我认为这与谷歌错误消息所说的基本相同

我的问题是:那我该如何部署我的 IdSrv 的测试版本?我现在只想要一个快速简单的环境来进行测试。我在我的本地 IIS 中运行 IdSrv,遵循 Dominick 安装教程视频Thinktecture IdentityServer v2 教程:安装

0 投票
1 回答
506 浏览

federated-identity - 如何使用 Thinktecture IdentityServer 指定证书作为 wsTrustChannel 的凭据

我原以为基本上可以从此切换客户端凭据:

至:

然后创建一个 wsTrustChannel 来获取安全令牌。

用户名和密码工作正常,只是使用证书抱怨没有指定用户名。我的印象是令牌发行者会从证书中查找关联的用户。我在哪里错了?

0 投票
2 回答
1622 浏览

ws-federation - 为什么 `IdSrv` 在 WS Federation 响应 POST 到 issue/hrd 时会抛出 `EncryptedTokenDecryptionFailedException` 异常?

我正在尝试使用Thinktecture.IdentityServer V. 2.

我有一个网站设置为依赖方,并且该网站设置为将身份验证推迟到/issue/hrd身份服务器。这似乎按预期工作。

此外,我还通过 IdSrv 管理页面向身份服务器添加了身份提供程序(ADFS)。身份提供者配置为

  • 标识符
  • 显示名称
  • 它已启用
  • 家庭领域发现已启用
  • WSStar 被选为类型
  • 填充了 WS-Federation 端点
  • 发行人指纹已填写

身份提供者配置为信任我的身份服务器。

当网站 (RP) 需要身份验证时,它重定向到身份服务器,该服务器进一步重定向到身份提供者,我得到身份提供者的登录屏幕并且能够登录,但是返回到/issue/hrd身份服务器上的 HTTP POST 失败并出现以下异常:

0 投票
1 回答
1263 浏览

c# - 使用 Thinktecture Identity Server 时保留 OAuth2 不记名令牌

我一直在关注http://leastprivilege.com/2012/11/01/oauth2-in-thinktecture-identityserver-v2-resource-owner-password-flow/上的 OAuth2 资源所有者密码流的 Thinktecture Identity Server 示例

我有示例工作并通过以下过程成功返回 JWT 令牌

  1. 使用 Thinktecture OAuth2Client 检索访问令牌
  2. 从客户端计算机上的“受信任的人”存储中检索签名证书
  3. 使用证书并创建一个新的JwtSecurityTokenHandlerandTokenValidationParameters并调用tokenHandler.ValidateToken以获取 ClaimsPrincipal

从这里我被授权,但我不确定为进一步请求保留令牌的最佳方式。我尝试使用

但是我没有SessionAuthenticationModule注册。我尝试使用身份和访问向导来完成此操作,但它对配置进行了许多更改并尝试为被动身份验证进行设置。

我可以使用传统的 FormsAuthentication cookie (.aspnetAuth),但我记得讨论过 .FedAuth cookie 的一个优点是,如果大小变得太大,它会自然地分成几个 cookie。

我正在努力寻找一篇为我完成图片的文章。我需要不记名令牌来访问堆栈中的各种 API。我有用于 SSO/被动身份验证的工作示例,因为大部分工作都是为您完成的。我只是不确定使用资源所有者密码流时使用的最佳模式。

所以

  1. 我是否错过了使用 Thinktecture 身份模型和服务器实现这一目标的更直接的方法?
  2. 我是否应该尝试创建一个 FedAuth cookie,以便我可以重用已经为 WIF 设置的各种消息处理程序/过滤器组件?
  3. 否则 - 简单地将访问令牌放在 FormsAuthentication cookie 的 UserData 部分有什么特别的错误吗?
0 投票
1 回答
400 浏览

ajax - 通过 Ajax/Javascript 传递 JWT 令牌

我想知道将我从 Identity Server 收到的 JWT 令牌提供给页面是否“合法”,以便 Javascript 可以使用它作为承载令牌对多个 API 端点进行 ajax 调用。显然,这些端点将使用 SSL,但这是典型/正确的使用模式吗?

干杯,

0 投票
0 回答
794 浏览

identity - 在 ThinkTecture IdentityServer 中与 hrd 一起使用的本地 wsfed 端点

我正试图在 ThinkTecture IdentityServer 中设置 Home Realm Discovery。我有两个外部身份提供者,但也想从同一屏幕链接到本地​​ wsfed 端点。我在GitHub 上看到了 Brock对这个问题的回应,但我无法理解这个概念。我已将 IdSrv wsfed 端点注册为身份提供者,但如何将 IdSrv hrd 配置为 RP?目前我收到服务器错误:无效领域。领域实际上等于常规配置中的站点 ID?

0 投票
2 回答
1176 浏览

ws-federation - App.Config for Federated Security 与 Thinktecture IdentityServer 中的客户端证书

目前,我可以通过首先通过 WS-Trust 端点使用证书凭证从 STS 建立安全令牌,然后在通道工厂上调用 CreateChannelWithIssuedToken() 来建立带有 IssuedToken 的 WCF 通道。请参阅如何使用 Thinktecture IdentityServer 指定证书作为 wsTrustChannel 的凭据

但是,不要这样做:

理想情况下,我只想这样做(并让安全令牌的颁发者根据传递的证书自动颁发令牌)。

我的问题是 - 可以像下面这样配置绑定来指定 ThinkTecture IdentityServer STS 是安全令牌的颁发者吗?

如果是这样 - 我在配置这部分绑定时遇到了很多麻烦:

我的主要困惑是:issuer config 元素似乎将绑定、行为和端点都封装在一个元素中。可以配置绑定 - 显然必须配置,因为上面的 issuer 元素抱怨没有配置绑定。但是如何为颁发者通道指定 SSL 证书,因为这是一个行为配置,并且似乎没有任何方法可以为颁发者端点设置行为。

0 投票
1 回答
1803 浏览

c# - 单点登录:我应该往哪个方向走?

我有一个适用于多个教育机构的 SaaS Web 应用程序。所有客户端都托管在同一个应用程序/数据库中。该应用程序当前是用 C# 为 ASP.Net 4 Web 窗体编写的。

目前我的应用程序使用本地/本机数据库进行用户身份验证/授权。

我们的客户要求我们支持单点登录,其中客户端是身份验证提供者,我的应用程序是消费者。

问题是客户端通过不同的协议/机制(如 Shibboleth 和 OpenID Connect)请求 SSO。这意味着我需要/应该创建一个适用于所有这些或至少是可扩展的解决方案。

我遇到了 Thinktecture 的 IdentityServer,我认为它可以抽象出我的客户使用的各种 SSO 机制,并将我的应用程序理解的基于声明的身份令牌返回给我的应用程序。

不过,我在这个概念上挣扎了很多。这是否意味着我的应用程序将所有身份验证请求重定向到 IdentityServer,让 IdentityServer 处理 OpenID Connect 的来回处理,然后从 IdentityServer 接收到带有我需要的有关用户的信息的令牌?身份服务器如何知道用户的领域(即它知道将用户发送到哪个客户端身份验证提供程序)?IdentityServer 是否需要验证用户在我的应用程序的本地/本机数据库中是否存在?IdentityServer 可以同时处理 SSO 和本地登录吗?

单独的身份服务器是否可行?似乎是这样,允许我的应用程序与一个点(身份服务器)集成。但是,除了如何配置之外,关于 Thinktecture 的 IdentityServer 的文档并不多。ADFS 可能会提供类似的解决方案,但大多数示例都是针对 ADFS 和 Azure。

最后,我假设我仍然会维护每个用户的本地/本地授权数据,因为第 3 方身份验证提供者不可能知道我的应用程序的特定授权需求。

有什么想法或建议吗?