Identityserver4 我是否可以验证JWT是否存在与IdentityServerAuthenticationOptions.AllowedScopes类似的声明

我知道我可以编写自己的过滤器来检查HttpContext.User.Identity的声明,我有一个有效的解决方案 我可以在管道中更早地使用以下方法对作用域进行选通: app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions { Authority = "http://localhost:7791", RequireHttpsMetadata = false, EnableCachin

使用identityserver4保护多个API

我想只使用一个identityserver4应用程序来保护我的所有API 我的sirst资源api和客户端应用程序: CustomerManagementApi CustomerManagement.JavascriptApplication CustomerManagement.iOSApp CustomerManagement.AndroidApp 我的第二个资源api和应用程序: 人力资源API HumanResource.mvc应用程序 我的其他资源api和应用程序: 仪表板A

Identityserver4 参数化标识服务器4部署

我们正在开发一个容器化B2B应用程序,其中每个租户都有自己独立的容器集(web api、web SPA(react)、后端和IdentityServer 4)。我们使用Kubernetes参数化部署(kubectl apply-f Tenant1DeployAll.yaml),从容器注册表中的相同映像部署容器。Tenant1DeployAll.yaml中与IdentityServer容器相关的部分: --- apiVersion: apps/v1 kind: Deployment metadat

Identityserver4 如何访问Swashback.AspNetCore受保护的api以测试自动文档?

我正在开发一个带有IdentityServer4、一个受保护的web api和一个消费者(控制台应用程序到测试)的解决方案 我使用swashback.AspNetCore包自动记录我的web api 在web api中的我的ConfigureServices方法中,我编写了以下代码: services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "API v1", Versio

Identityserver4 无效的重定向uri,即使它们相同

当尝试登录到identityserver(使用.net core 3预览版)时,即使请求uri和允许的uri相同,我也会收到无效的重定向uri错误 我还能做错什么 失败:IdentityServer4.Validation.AuthorizationRequestValidator[0] 无效的重定向uri:http://localhost:1337/authentication/login-回拨 { “客户端ID”:“myapp”, “客户端名称”:“myapp”, “允许重定向URI”:[

如何撤销Identityserver4中的刷新令牌?

我需要按用户和客户端撤销刷新令牌。但我不知道该怎么做 我可以使用刷新令牌吗 或者我需要写代码。我在Identity中使用EF,在startup中我有: AddOperationalStore(options => ....) 删除令牌似乎有两种选择: IPersistentGrantStore:RemoveAllAsync(字符串主体ID、字符串客户端ID) IRefreshTokenStore:RemoveRefreshTokensAsync(字符串subjectId、字符串cli

Identityserver4 使用IdentityServer代表客户端而不是用户调用API?

我正在考虑将IdentityServer4用于一个新项目。我是新手,读了一些书,看到了一些演示客户机的运行情况 示例中的大多数客户端都允许以用户身份登录并发出令牌 要求 我有多个应用程序,例如MVC/SPA/Mobile等。我希望允许每个应用程序成为客户端并调用API 我需要一个设置,应用程序可以调用受保护的API,而无需用户登录。因此,API是基于作用域进行保护的 我知道我可以使用客户端凭据流来获取访问令牌并调用我的API。这对于像MVC这样的应用来说很好,因为这个秘密永远不会被暴露 我了解到

Identityserver4 在启动外部访问ConfigurationDbContext

在startup.cs中配置ConfigurationDbContext后,如何在startup类外部访问该实例? 我想用ConfigurationDbContext创建一个存储库,并想使用与启动中配置的ConfigurationDbContext相同的实例。正如您在IdentityServer4.EntityFramework中所看到的那样,ConfigurationDbContext在内置DI中注册为作用域(实际上是指“每个web请求”)。此外,它还注册为IConfigurationDbCo

在IdentityServer4中';idsrv';以及';idsrv.session';曲奇

我知道idsrv.sessioncookie用于检测用户的会话是否已更改。此cookie是IdentityServer中提供的实现的一部分。然后我不明白的是idsrvcookie的用途。有人能解释一下吗?idsrvcookie用于ASP.NET核心cookie身份验证 看 IdentityServer注册两个cookie处理程序(一个用于身份验证会话,一个用于临时外部cookie)。默认情况下使用它们,如果要手动引用它们,可以从IdentityServerConstants类(DefaultCo

Identityserver4 Identity Server—将自定义参数添加到来自令牌端点的JSON响应中

我需要在Identity Server令牌端点的令牌响应中添加自定义成员 预期答复样本: { “访问令牌”:“XXXXXXXXXXXXX”, “令牌类型”:“承载者”, “expires_in”:3600, “范围”:“患者/观察.阅读患者/患者.阅读”, “病人”:123, “刷新令牌”:“XXXXXXXXXXXXXXXXXX” } 我想在响应中添加scope,patient参数,即使它存在于访问令牌中 任何关于这方面的指导都会非常有用 由于TokenResponse的静态特性,无法使用开箱

Identityserver4 Mtls令牌请求失败,出现错误-AuthenticationScheme:x509被禁止

我正在尝试使用Identityserver4的新的相互TLS客户端身份验证。我遵循了Identityserver4网站()中的文档 当我试图为mtls客户机获取访问令牌时,出现错误“禁止”。当我检查IdentityServer4日志文件时: 2019-06-11 10:19:26.690 +00:00 [INF] Request finished in 23.3151ms 200 application/json; charset=UTF-8 2019-06-11 10:19:26.784 +0

Identityserver4 静默刷新-在自定义登录URL上使用隐式流时刷新访问令牌

我在Angular中使用IdentityServer4(.NET Core API)和“oidc客户端”,其中我使用的是自定义登录和注销URL,而不是默认的IdentityServer4 URL,因此在这个场景中,来自“oidc客户端”的静默刷新请求。它返回302,但令牌有时会自动过期 IdentityServer 4: services.AddIdentityServer(opt => { opt.UserInteraction.LoginUrl = "/

Identityserver4 如何在Api项目中为登录用户获取用户ID?

我有Api项目和IdentityServer项目。用户已登录IdentityServer。如何获取Api项目中登录用户的用户ID 我在identity server中通过了身份验证,但我没有访问api的权限,我在尝试调用api方法时看到401错误(未经授权),为什么? 我已将Api添加到ConfigureServices方法中的Startup.cs中: services.AddAuthentication(IdentityServerAuthenticationDefaults.Authenti

Identityserver4 使用Identity Server保护ASP.NET Core Blazor WebAssembly托管的应用程序

我有一个使用blazor托管模板的项目。它在iis服务器中无需身份验证即可正常工作。但在我使用iis服务器添加身份验证后,会出现此错误 HTTP错误500.30-ANCM进程内启动失败 我该如何解决这个问题。这是我第一次使用identity server。我没有线索来修正这个错误。如有任何意见,将不胜感激 更新 这将记录应用程序生成的日志 info: IdentityServer4.Startup[0] Starting IdentityServer4 version 3.

Identityserver4 如何使IdentityServer客户端与任何源服务器一起工作?

当我在IdentityServer中创建新的客户端时,我可以将AllowedCorsOrigins设置为URL列表,但是有没有一种方法可以使它在不设置特定URL的情况下与任何源一起工作 我搜索了一下,如果我是正确的,似乎自定义实现的ICorsPolicyService是一种方法,不确定这是否是唯一的方法,但如果是,那么我如何在identity server中注册它?我创建了这个类,但是我 我不知道如何进一步使identity server工作?在启动的ConfigureServices方法中,您

Identityserver4 客户机的自定义布局

我已经安装了一个启用了ASP.NET标识位的Identity Server 4服务器 当用户被重定向到Identity Server的登录页面(现在是ASP.NET Identity登录页面)时,是否有方法确定用户来自哪个客户端 我的特定用例是为不同的客户端启用一些自定义的登录页面(不同的MVC布局)。我们的示例UI展示了如何做到这一点- 将IIdentityServerInteractionService注入帐户控制器 调用GetAuthorizationContext方法以获取诸如客户端i

更改用户后获取新访问令牌的正确方法';s在IdentityServer4中的索赔

我将IdentityServer4与Angular 8和Web API一起使用 当用户注册时,我会使用oidc client userManager.signinSilent方法自动将其登录 在用户的声明被更新之后,我使用相同的方法来更新访问令牌。例如,用户可能为服务付费,因此我需要更新用户的声明,并将其反映在UI的访问令牌中 这是更新访问令牌的正确方法吗?根据规范,一旦发布JWT,就无法更新它。因此,唯一的选择是通过设置ttl(Identityserver中客户端的AccessTokenLif

Identityserver4 无主题的Identity Server 4扩展授权

我创建了一个委托扩展授权,就像他们在文档中所做的那样 在本例中,它们从声明中获取用户身份,并返回授权验证结果,如下所示: var sub = result.Claims.FirstOrDefault(c => c.Type == "sub").Value; context.Result = new GrantValidationResult(sub, GrantType); 我的问题是,当我需要使用委托授权时,我并不总是有一个主题即用户身份。在我的场景中,我有一个应用程序在侦听消息。当

Identityserver4 我应该将IdentityServer和它的管理合并到一个应用程序中还是分成两个?

我想知道是否有关于如何处理IdentityServer管理的建议。将管理部分分离到一个自己的web应用程序中,只使用同一个DB更好吗?还是只使用一个站点就可以了?如果是同一个网站;我可以使用OAuth来限制对管理员页面的访问,还是应该使用其他机制;e、 g.ASP.NET身份验证?您可以做任何一件事-Identity server背后的人已经在这里为您创建了一个UI- 有付费和免费两种版本。您能澄清一下您所说的处理ID管理的含义吗?你说的是web应用程序?数据?基础设施管理方面,我指的是对客户、

Identityserver4 如何在服务启动后配置外部身份验证方案

我想将我自己的identityserver4实例作为我在云中托管的服务的身份验证实例 我的具体场景是,我希望客户能够以自助服务的方式使用他们的ADF进行设置,类似于松弛、昂贵或允许这样做的方式 我知道联邦制是如何运作的。通常在ConfigureServices的启动中,您会添加以下内容 services.AddAuthentication() .AddCookie("cookie") .AddSaml2p("idp1", optio

Identityserver4 带有WebAuthN的Identity Server 4-使用GrantType(FIDO 2.0)

我使用Identity Server 4使用WebAuthN()对用户进行身份验证 我有多个客户端命中一个api客户端。我的api客户端负责决定使用哪个身份验证提供程序、传递数据(服务器到服务器、服务器到外部api)以及协调身份验证过程 我们使用的一个身份验证提供程序是identity server 4,这就是我们实现WebAuthN的地方 我不确定在Identity Server 4中实现此功能的推荐方法是什么。我有两个选择 在identity server上创建API终结点以向凭据用户进行身

Identityserver4 连接到…时出错。。。无法建立连接,因为目标计算机主动拒绝连接

我刚刚获得了最新的IdentityServer4和quickstart代码,并尝试按照quickstart的说明进行设置和测试。我在Windows10笔记本电脑上使用VS.NET2019。安装过程似乎很好,代码编译没有问题。但是当我从VS运行客户机项目时,我收到了错误消息“error connecting to”https://localhost:5001/.well-已知的/openid配置。无法建立连接,因为目标计算机在以下客户端代码行主动拒绝了它…” var disco=await cli

Identityserver4 您如何要求IdentityServer 4在不登录的情况下更新索赔?

我希望能够打开和关闭对我的网站的某一特定区域的保护。我使用IdentityServer填充MVC应用程序上的声明,从而确定访问能力 例如,我有一个类型为“video\u viewer\u role”的声明,该声明在指定时确定当前身份是否可以在网站上查看视频。我的想法是,我可以通过声明打开和关闭此功能,包括匿名用户 因此,我希望控制器操作调用IdentityServer并询问当前用户是否有声明,但不触发身份验证过程。因此,如果用户未通过身份验证,我将获得“video_viewer_role”的最新

Identityserver4 IdentityServer-单独的身份验证、授权、资源,而不使用任何UI网站?

我希望有一个由这些设备/程序组成的体系结构,这些设备/程序具有不同的角色(它们都是分开的,这些角色都不能存在于同一个实例中): 客户 身份验证服务器 授权服务器(可以有很多) 资源服务器(也有许多可能) 以及: 我不想使用任何用户必须导航到的网站 根据我对OAuth和Open ID Connect的研究,我假设客户机可以从身份验证服务器获得ID_令牌(授权后),然后可以从授权服务器请求对不同资源的访问_令牌 我想我所描述的方法允许在客户端窃取身份 我找不到一种方法可以轻松地从授权服务器向客户

使用IdentityServer4从DB显式登录/注销自定义用户

我正在使用我的DB和ASP核心身份服务器进行身份验证。我还实现了IResourceOwnerPasswordValidator和IProfileService。 我通过tokenClient.RequestResourceOwnerPasswordAsync方法连接到服务器,不使用MVC 一切似乎都按预期工作,但我想将IsLoggedIn属性设置为我的用户,并将其保存在DB中,当会话结束时,将其设置为false 什么地方最好?到处都找不到答案 编辑 此外,我想提到的是,我使用IdentityMo

IdentityServer4-我需要在API代码中声明给定的名称,但不要';我的API中没有标识令牌。我怎样才能得到你的名字?

我有一个移动客户端(Android)、一个API(WebAPI.NETCore3.1)和一个IdentityServer4 我使用我的客户端登录到IdentityServer,并获得一个身份令牌和一个访问令牌 我使用访问令牌访问API。。。到目前为止一切都很好 现在在API中,仅第一次,我需要用用户的名字和姓氏以及一些其他身份信息更新一个表,但是这些声明在API中不可用(因为这些信息在访问令牌中不可用) 我的问题是,如何从API代码中获取用户声明 我可以将各种声明作为字符串参数传递给API调用,

AutomaticChallenge为false时触发IdentityServer4登录流

我正在尝试从中学习IdentityServer 4 它很好用。当我在OpenIdConnectOptions上使用AutomaticChallenge=true时,客户端应用程序可以登录 因为我的应用程序是angularjs SPA,所以我实际上计划让angularjs应用程序在我拿到401时转到某个url,比如:localhost/doIdentityServer4login 但当我将AutomaticChallenge设置为false时,我找不到触发oidc登录的方法 经过几天的搜索和尝试,

更新IdentityServer4的客户端数据库

我在我的网络核心应用程序中将服务器4标识为我的oAuth服务器。我能够使用以下代码初始化客户端数据库: public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); using (var servi

Identityserver4 Identity server 4异常行为,登录后未重定向回mvc客户端

使用aspnetcore 2.1和Identity Server 4 quickstart,我设置了一个带有mvc客户端的令牌服务器,这样当使用Authorized属性时,它会重定向到ID4服务器登录屏幕,登录后会重定向回mvc客户端 自从我们在数据库中使用自定义salt和hash重构一个旧应用程序以来,我创建了一个自定义用户存储、角色存储和密码hasher 我可以很好地登录使用 signInManager.PasswordSignInAsync() 但它并没有像我预期的那样重定向回客户端 从f

Identityserver4 使用identity server4并发登录

当用户登录到其他浏览器时,希望从所有其他会话注销。 我可以删除PersistedGrants,但cookies仍然存在。 当用户刷新页面时,由于刷新令牌,将生成一个新的访问令牌。 所以基本上我们只需要一个并发的用户会话 任何帮助都将不胜感激 默认情况下,IdSrv在cookie中持久化用户会话。您可以通过实现IUserSession并在DI中注册来改变这一点。这样,您就可以在一个会话内访问登录的客户端。有了这些知识,您可以使用以下检查注册自定义中间件:当进行身份验证时,即具有身份验证cookie

Identityserver4 IdenityServer:API资源和作用域

我的理解是,客户端可以访问ome或多个ApiScope,ApiScop链接到许多APIsources资源,这些资源的名称成为受众声明的价值 即。, 1个客户端->多个API作用域 和 1个API范围->许多API资源 然而,人们谈论ApiResources拥有apiscope(而不是拥有资源的作用域),这似乎不是模型的工作方式 它应该如何工作? 有任何文档吗?定义ApiResource时,您需要添加它所属的APIscope 就像在这段代码中,下面的作用域绑定到两个APIscope var inv

Identityserver4 使用引用令牌或JWT进行api验证

我正在尝试从Identity server 4获取一个api来验证令牌(jwt和引用)。令牌的第一部分如下所示: { alg: "RS256", kid: "09E9884444C4E3221983C13333333333333334A", typ: "JWT", x5t: "CemILYTE3432GGGGGGGGGGGG" }. { nbf: 1522084412, exp: 1522088012, iss: "https://authserv:8097", aud: [

Identityserver4 获取客户端的标识令牌

我使用IdentitServer4为windows应用程序创建了一个客户端。要调用另一个身份验证服务,即AWS STS,我需要设置与我的ID服务器的联合,并使用身份令牌 是否可以为客户端获取身份令牌 下面的代码为我提供了访问令牌,但标识令牌为null var disco = await DiscoveryClient.GetAsync(Properties.Settings.Default.IdentityUrl); if (disco.IsError) {

Identityserver4 我们如何在Identity Server 4中模拟用户

我有一个要求,即客户服务人员使用其凭据登录,并且必须模拟实际用户。您可以为相同的用户实现服务帐户流。使用它,您可以获得相应客户端的令牌,该客户端具有访问客户服务资源所需的所有作用域 可能重复的

Identityserver4 Blazor WASM IdentityServer 4注销警报

我正在使用新的独立Blazor WASM身份验证流和IdentityServer 4。我想向用户提供一条消息,说明他们由于不活动而注销。我已经用一个低质量的js alert()实现了这一功能,但我想知道是否可以用一个自定义的弹出窗口或者一个重定向参数发送到identityserver,在identityserver登录页面上向他们显示警报 我不太明白如何中断onlogoutsuccessed之后发生的立即重定向。js alert()暂停重定向并工作。我是否可以修改传出登录重定向uri以向IDS4

Identityserver4 如何使用Identity Server保护多租户API?

我正在努力寻找正确的方法来保护带有Identity Server的多租户Web API。让我解释一下 我们有一个为ASP.NET MVC应用程序服务的多租户Web API 为每个新客户分配一个新租户 客户可以有多个应用程序订阅。它的 这与该应用程序每小时管理多个数据库的说法相同 客户(他可以从相同的基本URL访问) 每个用户都属于一个客户(租户),并且将具有访问权限 所有客户的订阅 API的设置方式是,每个端点都包含租户id和订阅id,这样它就可以知道应该从哪个订阅/数据库获取数据: /te

IdentityServer4-RequestedClaimTypes为空

从IdentityServer 4文档中: 如果请求的作用域是标识资源,则将根据IdentityResource中定义的用户声明类型填充RequestedClaimTypes中的声明 这是我的身份资源: return new List<IdentityResource> { new IdentityResources.OpenId(), new IdentityResources.Profile(

Identityserver4 WinFormsSample与';本地。混合';客户端不再工作了?

如果我将此示例中的客户端更改为“native.hybrid” 设定 Flow=OIDClientOptions.AuthenticationFlow.Hybrid 然后,登录到IS4就可以了(延迟5秒后),但我的默认web浏览器中会出现一个新的登录表单 与客户“interactive.public”配合很好。我的问题是,我的本地widows应用程序应该使用哪个流?我的意思是它是“OpenID连接混合流”,参见 如果要使用混合流,如何调整此示例?当前选择与OIDC一起使用的授权的经验法则是:

IdentityServer4强制注销

如何从不同用户的会话外部触发用户(完全)注销 例如,“管理员”登录并注销用户“JohnDoe”(来自IdentityServer和所有客户端) IdentityServer支持在用户注销时通知客户端(通过前端或后端通道)。这很好,但是如何从用户会话之外开始滚动呢 令牌的问题是您不能删除令牌,您必须通过从存储中删除它来撤销它,这样它就不能再使用了。事实上,使用反向通道注销时,您也会遇到同样的问题。您不能直接删除cookie,但客户端可以在下一个请求中拒绝它 通过用户会话,后台注销可以从Identi

  1    2   3   4   5   6  ... 下一页 最后一页 共 14 页