问题标签 [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.
thinktecture-ident-server - 如何为每个应用程序设置不同的角色?
我们计划使用 IdentityServer 进行单点登录。我们有多个应用程序,每个应用程序的用户具有不同的角色。我不清楚。我们如何设置它?
thinktecture-ident-server - 开发中如何切换用户?
当我们处于调试模式时,我们需要能够从我们的客户端界面切换用户。是否有捷径可寻?我们如何使用身份服务器做到这一点?
c# - 登录 Windows 用户的 identityserver3 Oauth2
我是身份验证主题的新手。
我的方法是使用 identityserver3 访问资源,我想将资源所有者客户端流与 OAuth2 一起使用,但对于 Windows 用户,我想要一个示例,您可以在其中使用登录的 Windows 用户获取访问令牌。
我尝试将https://github.com/IdentityServer/WindowsAuthentication设置为外部身份提供程序,我在我的身份服务器中将其注册为 WS-Fed 提供程序,如https://github.com/IdentityServer/IdentityServer3/issues/1157所示
我有一个“外部登录”按钮,按下该按钮后出现 HTTP 500 错误。
问题:
我走对了吗?
我认为 500 错误是不正常的,下一步该怎么做?
我现在如何以编程方式获取访问令牌,就像在“最简单的 OAuth2 演练”中一样?例子:
/li>
asp.net-mvc - 对于隐式流来说,令牌变得太大 - Thinktecture IdentityServer3
我一直在研究IdentityServer3
,我观察到我的Access Token
(和身份令牌)在 的情况下变得太大(最多3000+
字符)Implicit flow
,而同一服务器正在针对资源所有者流返回大约 20-30 个字符的访问令牌。这个问题是特定于 Flows 的还是我做错了什么......???
我在视觉工作室解决方案中拥有的是
- 单独/独立的 IdentityServer 服务器项目
- Mvc 应用程序项目(使用隐式流)
- 控制台应用程序(使用资源所有者流程)
- Web api 项目(从请求标头中的 mvc 应用程序或控制台应用程序获取访问令牌)
一旦我登录到 mvc 应用程序,它会获得一个相当大的访问令牌(和身份令牌),但在控制台应用程序的情况下,它只会返回一个漂亮而紧凑的令牌。为什么这里有区别……???
asp.net - 身份服务器 OAuth 资源所有者密码授予始终返回 invalid_client
我已经注册了我的客户,它使用隐式流程,但我需要实现一个登录表单,所以我正在尝试授予资源所有者密码凭据。我正在使用 Chrome 中的 Postman 向端点发出请求(这就是为什么我将 chrome-extension 添加到 CORS,只是为了看看这是否是错误......)
我尝试了很多请求(使用 https)
-
-
那些应该有效,但我总是得到 invalid_client
错误日志为空,不知道有没有做tracer注册对
有了这个在 web.config
客户端数据是正确的,因为我已成功使用隐式流程登录。我错过了什么?这让我很紧张,我正在阅读 OAuth RFC,但我不明白为什么这不起作用。
asp.net - 子域的 URL 重写因 identityserver3 而失败
我们在 azure 上托管了一个通配符域。我已经设置了 subdomain.domain.com 以重写到 domain.com/subdomain。一切正常。
但是,当我登录到我们的身份服务器时,一旦登录过程完成并且我被重定向回 subdomain.domain.com,身份验证令牌似乎丢失了。
我看不出这怎么可能。我们所有的身份提供商(谷歌、Facebook、Microsoft live)都会出现这个问题
如果我将设置更改为使用 domain.com/subdomain 那么一切都按预期工作
c# - Identity Server v3 自定义页面重置密码
我想在登录页面上创建一个将重定向到http://server/resetpassword/的 URL,并且会有我的 cusotm 页面,从示例中创建 CustomViewServices,但是没有示例如何添加您自己的页面
https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/CustomViewService
有任何想法吗?
angularjs - 从 AngularJs http web api 请求重定向到身份服务器登录页面
从 Angular 的 $http 服务调用 API 控制器方法时,我试图重定向到 Identity Server 的默认登录页面。
我的 Web 项目和 Identity Server 位于不同的项目中,并且具有不同的 Startup.cs 文件。
web项目Statup.cs如下
您会注意到 API 使用不记名令牌身份验证进行保护,而应用程序的其余部分使用 OpenIdConnect。
Identity Server Startup.cs 类是
请注意,我添加了一个 CorsPolicy 条目,以允许 Web 应用程序有望重定向到登录页面。此外,Cors 策略公开了 Location 请求标头,因为它包含我想要重定向到的 url。
Web Api 控制器方法使用授权属性进行保护,如下所示
角工厂调用$http,如下图
发生此调用时,响应状态为 200,在数据中,返回登录页面的 html。
此外,我可以在 Chrome 的网络选项卡上看到响应有一个 Location 标头,其中包含登录页面的 url。但是,如果我设置了一个 http 拦截器,我只会看到 Accept 标头已传递给 javascript。
以下是 Chrome 网络选项卡中显示的 http 标头:
由于某种原因,响应没有 Access-Control-Allow-Origin 标头。
所以我有以下问题:
有没有办法可以访问角度客户端代码中响应的 Location 标头以重定向到它?
我怎样才能让服务器向我发送 401 而不是 200 以便知道存在身份验证错误?
有没有更好的方法来做到这一点,如果有,怎么做?
谢谢你的帮助!
编辑:
我添加了一个自定义 AuthorizeAttribute 来确定过滤器返回的 http 状态代码。
自定义过滤器代码
我从中观察到两件事:首先,X-Requested-With 标头不包含在客户端 $http 服务生成的请求中。此外,base 方法返回的最终 http 状态是 401 - Unauthorized。这意味着状态代码在链上的某处发生了更改。
请不要觉得你必须回答所有问题。任何帮助将不胜感激!
oauth-2.0 - 使用 IdentityServer3 保留表单身份验证
我们目前在我们的组织中有一个典型的表单身份验证设置;登录页面位于帐户/登录等位置。我们希望保留这一点,但也希望开始使用 OAUTH2 保护我们的一些 API;本质上,我们是提供者。
通过阅读有关该主题的一些信息,不支持 Microsoft 的 OWIN OAUTH 实现向前推进(例如 vNext),并且不支持 OAUTH2 的所有流程。Thinktecture 的 identityserver3 似乎是目前“标准”和最完整的解决方案。
我似乎找不到将 identityserver3 与需要表单身份验证的现有应用程序一起使用的示例。
我们将考虑以两种不同的方式使用它;一种使用 javascript 的隐式流程,一旦用户登录到我们(使用表单身份验证)并且用户允许客户端访问特定范围,我们就允许第三方站点调用我们的 API。
我认为另一个用例将使用授权代码流;客户端会请求这个,以便它可以自动登录(很像使用 Facebook 登录 - 但使用 X 公司登录)或者如果登录我们的网站则已经登录。
对于这些场景的任何帮助将不胜感激。
c# - OWIN OpenID Connect 中间件不使用 ClaimsPrincipal 替换当前用户
我有一个现有的 MVC5 应用程序,我正在从使用 AspNetIdentity 转换为使用 ThinkTecture Identity Server 3 v2。OpenID 提供程序不是我遇到的最大问题,因为它似乎运行良好。安全令牌已经过验证,我正在以一种方法处理 SecurityTokenValidated 通知,以便获取额外的用户信息声明并将系统特定的权限声明添加到声明集中,类似于以下代码:
OWIN 中间件
索赔变压器
问题是在转换器末端分配给身份验证票证的 ClaimsIdentity 从未填充到 System.Web 管道中。当请求在 OnAuthenticationChallenge 期间到达我的控制器时,我检查 User 属性以找到一个匿名的 WindowsPrincipal,它具有分配给 Identity 属性的类似 WindowsIdentity 实例,就好像 Web 配置的system.web/authentication/@mode
属性设置为 None(至少我相信这是那个模式)。
什么可能导致中间件无法为用户设置主体,或者在 System.Web 处理期间用匿名 Windows 身份替换它?我一直无法追踪到这一点。
编辑:无论是否处理 SecurityTokenValidated 通知并增加声明,都会发生这种情况。
编辑 2:原因似乎是在我的 web.config 中使用 ASP.NET State Service 会话状态服务器和 cookie。配置条目是:
这看起来与 Microsoft.Owin.Host.SystemWeb #197中报告的问题有关,其中 cookie 没有从 OWIN 请求上下文持久保存到 System.Web 管道中。建议了各种各样的解决方法,但我希望有人权威地向我指出一个经过适当审查的解决方案来解决这个问题。