问题标签 [identityserver4]
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.
c# - 在 Identity Server 4 中添加自定义用户注册页面
我正在使用我的Identity Server 4
应用程序。我找不到添加自定义页面的方法。我可以添加如下所示的页面。Token Service
.Net Core
user registration
login
logout
我记得有一种方法可以添加自定义register
和forgot password
页面,Identity Server 3
如下所示。
我在Identity Server 4
. 任何人都可以帮我解决这个问题。非常感谢任何帮助。
ionic-framework - Identity Server + ionic + OpenID 混合流
我找不到这种解决方案的任何示例。可行吗?据我所知,它应该是,但我还没有看到有人这样做。这种方式有什么缺点吗?
谢谢 !
c# - 结合 IdentityServer4 和 MVC 客户端
我从 Github 下载了示例 IdentityServer 和 MVC 客户端项目。我的目标是创建一个门户环境,用户可以在其中进行身份验证,然后继续请求受保护的资源。
所以我所做的是将视图从 MVC 客户端移动到 IdentityServer 项目,更改 Client.cs 以支持同一端口上的客户端,并在 IdentityServer 的启动中添加以下内容:
我的问题是有什么理由,关于安全性,我不应该实施这个并将它分开吗?
asp.net-web-api - 在请求中包含 Bearer 时,出现 CORS 错误、IdentityServer4、Api、angular
登录后无法获取数据。
我将 IdentityServer4 与 WebApi 一起使用。只要我不发送任何授权书,一切都会正常进行。我正在使用 Damien Bod 的授权拦截器。
当我发送承载时,我得到了这个:
GET https://localhost:44373/api/pages/10 10:1 XMLHttpRequest 无法加载https://localhost:44373/api/pages/10。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:3000 ”。响应的 HTTP 状态代码为 500。
只要我不将 Authorization 标头添加到 http 请求,这就会起作用。
我正在使用此处找到的 IdentityServer 示例: https ://github.com/IdentityServer/IdentityServer4.Samples/tree/dev/MVC%20and%20API/src
安全服务和授权拦截器都在这里找到: https ://github.com/damienbod/AspNet5IdentityServerAngularImplicitFlow
所以问题是在我登录并尝试从 API 检索数据后,我收到上述错误。
API - Startup.cs
授权拦截器.ts
安全服务.ts
asp.net-core - 更改 IdentityServer 4 中的默认端点
我正在使用 IdentityServer 4 (1.0.0-beta5)。
默认情况下,身份验证的端点是:'/connect/token'。
如何更改 IdentityServer 中的默认端点,例如:'/api/login'?
谢谢
.net - 使用外部身份验证提供程序获取用户凭据,使用私有 IdentityServer 生成令牌
我正在设计一个安全后端,它应该为多个客户端提供令牌以保护多个 API。用户数据库位于 Azure B2C https://azure.microsoft.com/en-us/services/active-directory-b2c/中。我想创建包含基于用户访问权限的不同声明的 API 令牌。例如:用户 A 应该能够调用 /api/stores/11,但不能调用 /api/stores/12。
用例:
- 直接进入 Azure B2C 以进行用户登录和生成令牌的应用 (ipad)。使用此令牌调用 API 以进行用户个人资料社交互动等。
- 将调用具有访问权限限制的相同 API(不同模块)的外部系统。外部系统将有管理员,他们也将从 Azure B2C 获取凭据。
到目前为止我的解决方案:
- IdentityServer4 ( https://github.com/IdentityServer/IdentityServer4 ) 调用 Azure B2C 登录来验证用户凭据。
- 一旦身份验证完成(回调),IdentityServer 将应用用户对外部系统拥有的任何声明(访问权限等),然后生成一个令牌。IdentityServer 将有一个本地数据库,该数据库将用户 ID/电子邮件与访问权限连接起来。
- API 将使用多租户身份验证提供程序来支持来自 Azure B2C 的令牌和我的“中间”IdentityServer。提供者分别是 IdentityServerAuthentication 和 OpenIdConnectAuthentication。
我的问题是这是否是一个可行的解决方案?是不是太复杂了?在这种情况下你会做些什么不同的事情?我不想实现第二个用户登录,Azure B2C 似乎不支持细粒度的访问权限。
先感谢您。
validation - IdentityServer4:范围身份验证属性?
只是问,有没有办法保护不同范围的不同控制器或动作?到目前为止,我只看到了整个应用程序的一个全局范围。
在身份服务器 3 中似乎有一个 ScopeAuthorize 属性,但我在 IdentityServer4 中找不到它。
identityserver4 - 如何配置 IdentityServerAuthenticationOptions.Authority 以使用通配符
我使用 ASP.NET Core 成功设置了 IdentityServer4。
作为默认配置,我有这个:
现在,使用本指南,我配置为从配置文件中读取,因此它们可以是生产中的任何数字。
例如,如果我将 API 设置为运行,http://*:5000
那么客户端可以通过服务 IP 地址连接到它,例如http://192.168.1.100:5000
.
一旦客户端获得 Bearer 令牌并尝试使用它,Internal Server Error
就会发生以下异常:
将 IdS4 配置为具有动态权限的正确方法是什么?
更新
似乎问题出在发行者身上,对此有什么想法吗?
asp.net-core - IdentityServer4 Authorize 始终在 Azure AppService 上获取“未找到签名密钥”
我有一个基于 IS4 Identity 示例的 IdentityServer4 应用程序,以及一个使用不记名令牌通过 IS4.AccessTokenValidation 进行授权的 API。这通过 VisualStudio 在 localhost 上运行良好,当我部署到 Windows 2012 VM 并通过 IIS 托管时。当我将身份服务器作为应用服务网站部署到 Azure 时,一切都很好。但是,当 API 部署为使用与 VM 相同的域和证书的应用服务时,任何具有 Authorize 属性(有策略或无策略都无关紧要)的方法总是返回带有标头消息的 401:
我们使用 .NET 4.5.2,最新版本的 IdentityServer4 和 IdentityServer4.AccessTokenValidation 包。我还从 2016 年 8 月 30 日从 GitHub 中提取了最新的这些包,没有任何变化。无论如何,我不认为 IS4 Validator 是一个错误,但我不知道是什么原因造成的。有什么建议么?它是 Azure 主机错误吗?
我希望能够对此进行调试,但即使我从头开始重建,我也无法让远程调试对这个应用程序起作用,并且应用程序日志什么也没告诉我。我在 ASP.NET 安全存储库中翻找过,但没有更多的日志记录或调试访问权限,我对如何解决这个问题一无所知。
API 配置非常基础:
并且 Identity Server 是直接从样本中提取出来的,并且使用购买的证书进行签名。
是否有其他人将此配置完全用作 2 个 Azure 应用程序服务?或者考虑到发送到 VM 托管 API 的相同不记名令牌,可能导致此错误的原因是可以接受的。
jwt - JWT 中的复杂声明
JWT RFC似乎没有任何包含复杂数组的问题,例如:
这似乎是满足我们需求的理想方案,因为作为令牌的一部分,我们希望有一个用户可以访问的企业列表以及他对每个企业的角色(这是其身份的一部分)。API 的授权策略稍后会理解这些组并应用所需的授权逻辑。
我已经看到使用 IdentityServer4 将声明添加到ProfileDataRequestContext
'IEnumerable<Claim> IssuedClaims
属性中。
对于这种复杂的索赔结构,是否有任何推荐的替代方案?如果没有,是否有任何方法可以使用 IdentityServer4 构建该结构(可能是一些扩展?)或者唯一的方法是手动序列化 JSON,因为 Claim 似乎只接受一个字符串?
PS:我已经看到了这个问题和另一个问题,其中 Identity Server 的一位作者谈到了类似的反模式。不确定反模式是否会在声明中具有复杂的声明结构或“授权实现细节”。
任何关于这方面的建议都会很棒!
更新:
在给出一些想法之后,我同意拥有复杂的声明层次结构是不可取的,我可以通过为每个 businessId 前缀角色的肮脏解决方案来解决这个问题。像这样的东西:
这样我就保持了一个简单的结构,然后在客户端或 API 上,我可以阅读声明并找出1
具有名称的业务的 idOne
并且它具有角色admin
和account
.
这会是一个更好的解决方案吗?