我知道我可以编写自己的过滤器来检查HttpContext.User.Identity的声明,我有一个有效的解决方案
我可以在管道中更早地使用以下方法对作用域进行选通:
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:7791",
RequireHttpsMetadata = false,
EnableCachin
我想只使用一个identityserver4应用程序来保护我的所有API
我的sirst资源api和客户端应用程序:
CustomerManagementApi
CustomerManagement.JavascriptApplication
CustomerManagement.iOSApp
CustomerManagement.AndroidApp
我的第二个资源api和应用程序:
人力资源API
HumanResource.mvc应用程序
我的其他资源api和应用程序:
仪表板A
我们正在开发一个容器化B2B应用程序,其中每个租户都有自己独立的容器集(web api、web SPA(react)、后端和IdentityServer 4)。我们使用Kubernetes参数化部署(kubectl apply-f Tenant1DeployAll.yaml),从容器注册表中的相同映像部署容器。Tenant1DeployAll.yaml中与IdentityServer容器相关的部分:
---
apiVersion: apps/v1
kind: Deployment
metadat
我正在开发一个带有IdentityServer4、一个受保护的web api和一个消费者(控制台应用程序到测试)的解决方案
我使用swashback.AspNetCore包自动记录我的web api
在web api中的我的ConfigureServices方法中,我编写了以下代码:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "API v1", Versio
当尝试登录到identityserver(使用.net core 3预览版)时,即使请求uri和允许的uri相同,我也会收到无效的重定向uri错误
我还能做错什么
失败:IdentityServer4.Validation.AuthorizationRequestValidator[0]
无效的重定向uri:http://localhost:1337/authentication/login-回拨
{
“客户端ID”:“myapp”,
“客户端名称”:“myapp”,
“允许重定向URI”:[
我需要按用户和客户端撤销刷新令牌。但我不知道该怎么做
我可以使用刷新令牌吗
或者我需要写代码。我在Identity中使用EF,在startup中我有:
AddOperationalStore(options => ....)
删除令牌似乎有两种选择:
IPersistentGrantStore:RemoveAllAsync(字符串主体ID、字符串客户端ID)
IRefreshTokenStore:RemoveRefreshTokensAsync(字符串subjectId、字符串cli
我正在考虑将IdentityServer4用于一个新项目。我是新手,读了一些书,看到了一些演示客户机的运行情况
示例中的大多数客户端都允许以用户身份登录并发出令牌
要求
我有多个应用程序,例如MVC/SPA/Mobile等。我希望允许每个应用程序成为客户端并调用API
我需要一个设置,应用程序可以调用受保护的API,而无需用户登录。因此,API是基于作用域进行保护的
我知道我可以使用客户端凭据流来获取访问令牌并调用我的API。这对于像MVC这样的应用来说很好,因为这个秘密永远不会被暴露
我了解到
我有一个独立的angular SPA作为nodejs应用程序运行。我有一个asp.net核心webapi在虚拟目录中运行。我希望webapi托管identityserver并在SPA中使用oidc客户端。这可能吗?这个场景有没有开源的示例解决方案
在startup.cs中配置ConfigurationDbContext后,如何在startup类外部访问该实例?
我想用ConfigurationDbContext创建一个存储库,并想使用与启动中配置的ConfigurationDbContext相同的实例。正如您在IdentityServer4.EntityFramework中所看到的那样,ConfigurationDbContext在内置DI中注册为作用域(实际上是指“每个web请求”)。此外,它还注册为IConfigurationDbCo
我使用的是IdentityServer 4,我想定制内省响应,以便在用户发送其参考令牌进行验证时包含用户的声明。我找不到任何关于自定义内省响应的文档。可能吗?用户是否有更好的方式获取其声明
谢谢
我知道idsrv.sessioncookie用于检测用户的会话是否已更改。此cookie是IdentityServer中提供的实现的一部分。然后我不明白的是idsrvcookie的用途。有人能解释一下吗?idsrvcookie用于ASP.NET核心cookie身份验证
看
IdentityServer注册两个cookie处理程序(一个用于身份验证会话,一个用于临时外部cookie)。默认情况下使用它们,如果要手动引用它们,可以从IdentityServerConstants类(DefaultCo
我需要在Identity Server令牌端点的令牌响应中添加自定义成员
预期答复样本:
{
“访问令牌”:“XXXXXXXXXXXXX”,
“令牌类型”:“承载者”,
“expires_in”:3600,
“范围”:“患者/观察.阅读患者/患者.阅读”,
“病人”:123,
“刷新令牌”:“XXXXXXXXXXXXXXXXXX”
}
我想在响应中添加scope,patient参数,即使它存在于访问令牌中
任何关于这方面的指导都会非常有用 由于TokenResponse的静态特性,无法使用开箱
我正在尝试使用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
我在Angular中使用IdentityServer4(.NET Core API)和“oidc客户端”,其中我使用的是自定义登录和注销URL,而不是默认的IdentityServer4 URL,因此在这个场景中,来自“oidc客户端”的静默刷新请求。它返回302,但令牌有时会自动过期
IdentityServer 4:
services.AddIdentityServer(opt =>
{
opt.UserInteraction.LoginUrl = "/
我有Api项目和IdentityServer项目。用户已登录IdentityServer。如何获取Api项目中登录用户的用户ID
我在identity server中通过了身份验证,但我没有访问api的权限,我在尝试调用api方法时看到401错误(未经授权),为什么?
我已将Api添加到ConfigureServices方法中的Startup.cs中:
services.AddAuthentication(IdentityServerAuthenticationDefaults.Authenti
我有一个使用blazor托管模板的项目。它在iis服务器中无需身份验证即可正常工作。但在我使用iis服务器添加身份验证后,会出现此错误
HTTP错误500.30-ANCM进程内启动失败
我该如何解决这个问题。这是我第一次使用identity server。我没有线索来修正这个错误。如有任何意见,将不胜感激
更新
这将记录应用程序生成的日志
info: IdentityServer4.Startup[0]
Starting IdentityServer4 version 3.
当我在IdentityServer中创建新的客户端时,我可以将AllowedCorsOrigins设置为URL列表,但是有没有一种方法可以使它在不设置特定URL的情况下与任何源一起工作
我搜索了一下,如果我是正确的,似乎自定义实现的ICorsPolicyService是一种方法,不确定这是否是唯一的方法,但如果是,那么我如何在identity server中注册它?我创建了这个类,但是我
我不知道如何进一步使identity server工作?在启动的ConfigureServices方法中,您
我已经安装了一个启用了ASP.NET标识位的Identity Server 4服务器
当用户被重定向到Identity Server的登录页面(现在是ASP.NET Identity登录页面)时,是否有方法确定用户来自哪个客户端
我的特定用例是为不同的客户端启用一些自定义的登录页面(不同的MVC布局)。我们的示例UI展示了如何做到这一点-
将IIdentityServerInteractionService注入帐户控制器
调用GetAuthorizationContext方法以获取诸如客户端i
我使用javascript发送请求:
var settings = {
method: "POST",
url: tokenEndPoint.concat("/connect/token"),
data: {
username: "username",
password: "password",
grant_typ
我将IdentityServer4与Angular 8和Web API一起使用
当用户注册时,我会使用oidc client userManager.signinSilent方法自动将其登录
在用户的声明被更新之后,我使用相同的方法来更新访问令牌。例如,用户可能为服务付费,因此我需要更新用户的声明,并将其反映在UI的访问令牌中
这是更新访问令牌的正确方法吗?根据规范,一旦发布JWT,就无法更新它。因此,唯一的选择是通过设置ttl(Identityserver中客户端的AccessTokenLif
我创建了一个委托扩展授权,就像他们在文档中所做的那样
在本例中,它们从声明中获取用户身份,并返回授权验证结果,如下所示:
var sub = result.Claims.FirstOrDefault(c => c.Type == "sub").Value;
context.Result = new GrantValidationResult(sub, GrantType);
我的问题是,当我需要使用委托授权时,我并不总是有一个主题即用户身份。在我的场景中,我有一个应用程序在侦听消息。当
我无法将Identity Server 4与Google登录按钮集成
一旦我从google widget获得成功回调,我如何才能登录到Identity Server
gapi.signin2.render('spGoogleBtn', {
'width': 240,
'height': 50,
'longtitle': true,
'th
我想知道是否有关于如何处理IdentityServer管理的建议。将管理部分分离到一个自己的web应用程序中,只使用同一个DB更好吗?还是只使用一个站点就可以了?如果是同一个网站;我可以使用OAuth来限制对管理员页面的访问,还是应该使用其他机制;e、 g.ASP.NET身份验证?您可以做任何一件事-Identity server背后的人已经在这里为您创建了一个UI-
有付费和免费两种版本。您能澄清一下您所说的处理ID管理的含义吗?你说的是web应用程序?数据?基础设施管理方面,我指的是对客户、
我想将我自己的identityserver4实例作为我在云中托管的服务的身份验证实例
我的具体场景是,我希望客户能够以自助服务的方式使用他们的ADF进行设置,类似于松弛、昂贵或允许这样做的方式
我知道联邦制是如何运作的。通常在ConfigureServices的启动中,您会添加以下内容
services.AddAuthentication()
.AddCookie("cookie")
.AddSaml2p("idp1", optio
我使用Identity Server 4使用WebAuthN()对用户进行身份验证
我有多个客户端命中一个api客户端。我的api客户端负责决定使用哪个身份验证提供程序、传递数据(服务器到服务器、服务器到外部api)以及协调身份验证过程
我们使用的一个身份验证提供程序是identity server 4,这就是我们实现WebAuthN的地方
我不确定在Identity Server 4中实现此功能的推荐方法是什么。我有两个选择
在identity server上创建API终结点以向凭据用户进行身
我刚刚获得了最新的IdentityServer4和quickstart代码,并尝试按照quickstart的说明进行设置和测试。我在Windows10笔记本电脑上使用VS.NET2019。安装过程似乎很好,代码编译没有问题。但是当我从VS运行客户机项目时,我收到了错误消息“error connecting to”https://localhost:5001/.well-已知的/openid配置。无法建立连接,因为目标计算机在以下客户端代码行主动拒绝了它…”
var disco=await cli
我刚从qickstart VS.Net 2019项目中获得了在我的Windows 10上运行的IdentityServer。在我的launchSettings.json文件中,我将其配置为在端口5008上运行HTTPS,而不是默认的5001,如下所示:
{
"profiles": {
"SelfHost": {
"commandName": "Project",
&quo
使用来自的OIDC客户端。
和的演示服务器
我在IdentityServer本身上有以下控制器:
[Route("api/Test")]
//[Authorize]
[Authorize(ActiveAuthenticationSchemes = "Bearer")]
public class TestController : ControllerBase
{
public IActionResult Get()
{
var claims = User.Claim
我希望能够打开和关闭对我的网站的某一特定区域的保护。我使用IdentityServer填充MVC应用程序上的声明,从而确定访问能力
例如,我有一个类型为“video\u viewer\u role”的声明,该声明在指定时确定当前身份是否可以在网站上查看视频。我的想法是,我可以通过声明打开和关闭此功能,包括匿名用户
因此,我希望控制器操作调用IdentityServer并询问当前用户是否有声明,但不触发身份验证过程。因此,如果用户未通过身份验证,我将获得“video_viewer_role”的最新
我希望有一个由这些设备/程序组成的体系结构,这些设备/程序具有不同的角色(它们都是分开的,这些角色都不能存在于同一个实例中):
客户
身份验证服务器
授权服务器(可以有很多)
资源服务器(也有许多可能)
以及:
我不想使用任何用户必须导航到的网站
根据我对OAuth和Open ID Connect的研究,我假设客户机可以从身份验证服务器获得ID_令牌(授权后),然后可以从授权服务器请求对不同资源的访问_令牌
我想我所描述的方法允许在客户端窃取身份
我找不到一种方法可以轻松地从授权服务器向客户
我正在使用我的DB和ASP核心身份服务器进行身份验证。我还实现了IResourceOwnerPasswordValidator和IProfileService。
我通过tokenClient.RequestResourceOwnerPasswordAsync方法连接到服务器,不使用MVC
一切似乎都按预期工作,但我想将IsLoggedIn属性设置为我的用户,并将其保存在DB中,当会话结束时,将其设置为false
什么地方最好?到处都找不到答案
编辑
此外,我想提到的是,我使用IdentityMo
我有一个移动客户端(Android)、一个API(WebAPI.NETCore3.1)和一个IdentityServer4
我使用我的客户端登录到IdentityServer,并获得一个身份令牌和一个访问令牌
我使用访问令牌访问API。。。到目前为止一切都很好
现在在API中,仅第一次,我需要用用户的名字和姓氏以及一些其他身份信息更新一个表,但是这些声明在API中不可用(因为这些信息在访问令牌中不可用)
我的问题是,如何从API代码中获取用户声明
我可以将各种声明作为字符串参数传递给API调用,
我有一个.NetFramework4.61 WebAPI。我正在尝试使用Nuget安装IdentityServer 3.AccessTokenValidation和System.IdentityModel.Tokens.Jwt,但它给出了以下错误。我还尝试使用同样失败的PackageManager控制台进行安装
>Install-Package IdentityServer3.AccessTokenValidation -Version 2.14.0
>Install-Package
我正在尝试从中学习IdentityServer 4
它很好用。当我在OpenIdConnectOptions上使用AutomaticChallenge=true时,客户端应用程序可以登录
因为我的应用程序是angularjs SPA,所以我实际上计划让angularjs应用程序在我拿到401时转到某个url,比如:localhost/doIdentityServer4login
但当我将AutomaticChallenge设置为false时,我找不到触发oidc登录的方法 经过几天的搜索和尝试,
我在我的网络核心应用程序中将服务器4标识为我的oAuth服务器。我能够使用以下代码初始化客户端数据库:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
using (var servi
使用aspnetcore 2.1和Identity Server 4 quickstart,我设置了一个带有mvc客户端的令牌服务器,这样当使用Authorized属性时,它会重定向到ID4服务器登录屏幕,登录后会重定向回mvc客户端
自从我们在数据库中使用自定义salt和hash重构一个旧应用程序以来,我创建了一个自定义用户存储、角色存储和密码hasher
我可以很好地登录使用
signInManager.PasswordSignInAsync()
但它并没有像我预期的那样重定向回客户端
从f
当用户登录到其他浏览器时,希望从所有其他会话注销。
我可以删除PersistedGrants,但cookies仍然存在。
当用户刷新页面时,由于刷新令牌,将生成一个新的访问令牌。
所以基本上我们只需要一个并发的用户会话
任何帮助都将不胜感激 默认情况下,IdSrv在cookie中持久化用户会话。您可以通过实现IUserSession并在DI中注册来改变这一点。这样,您就可以在一个会话内访问登录的客户端。有了这些知识,您可以使用以下检查注册自定义中间件:当进行身份验证时,即具有身份验证cookie
我正在尝试使用一个自定义端点,该端点根据传递给LocalApicController的参数添加特定声明
我在以下网址获得帮助:
http://docs.identityserver.io/en/latest/topics/add_apis.html
我配置了startup.cs:
services.AddLocalApiAuthentication(principal =>
{
principal.Identities.First().AddClaim(n
我的理解是,客户端可以访问ome或多个ApiScope,ApiScop链接到许多APIsources资源,这些资源的名称成为受众声明的价值
即。,
1个客户端->多个API作用域
和
1个API范围->许多API资源
然而,人们谈论ApiResources拥有apiscope(而不是拥有资源的作用域),这似乎不是模型的工作方式
它应该如何工作?
有任何文档吗?定义ApiResource时,您需要添加它所属的APIscope
就像在这段代码中,下面的作用域绑定到两个APIscope
var inv
上下文变量(ResourceOwnerPasswordValidationContext)中是否有一个属性允许我访问发送初始身份验证请求的客户端的IP地址。在该上下文中没有类似的信息可供您获取。您唯一的选择是将IHttpContextAccessor注入ResourceOwnerPasswordValidator,然后您可以从HttpContext.request对象获取请求IP
我正在尝试从Identity server 4获取一个api来验证令牌(jwt和引用)。令牌的第一部分如下所示:
{
alg: "RS256",
kid: "09E9884444C4E3221983C13333333333333334A",
typ: "JWT",
x5t: "CemILYTE3432GGGGGGGGGGGG"
}.
{
nbf: 1522084412,
exp: 1522088012,
iss: "https://authserv:8097",
aud: [
我使用IdentitServer4为windows应用程序创建了一个客户端。要调用另一个身份验证服务,即AWS STS,我需要设置与我的ID服务器的联合,并使用身份令牌
是否可以为客户端获取身份令牌
下面的代码为我提供了访问令牌,但标识令牌为null
var disco = await DiscoveryClient.GetAsync(Properties.Settings.Default.IdentityUrl);
if (disco.IsError)
{
我有一个要求,即客户服务人员使用其凭据登录,并且必须模拟实际用户。您可以为相同的用户实现服务帐户流。使用它,您可以获得相应客户端的令牌,该客户端具有访问客户服务资源所需的所有作用域 可能重复的
我正在尝试通过MVC客户端快速启动,但在快速启动文档之后修改的Index.cshtml中的“@foreach(var prop in(wait Context.authenticatesync()).Properties.Items)”行遇到了“object reference not set…”错误。下面是完整的Index.cshtml。谁能告诉我我做错了什么
@using Microsoft.AspNetCore.Authentication
<h2>Claims</h2
我正在使用新的独立Blazor WASM身份验证流和IdentityServer 4。我想向用户提供一条消息,说明他们由于不活动而注销。我已经用一个低质量的js alert()实现了这一功能,但我想知道是否可以用一个自定义的弹出窗口或者一个重定向参数发送到identityserver,在identityserver登录页面上向他们显示警报
我不太明白如何中断onlogoutsuccessed之后发生的立即重定向。js alert()暂停重定向并工作。我是否可以修改传出登录重定向uri以向IDS4
我正在努力寻找正确的方法来保护带有Identity Server的多租户Web API。让我解释一下
我们有一个为ASP.NET MVC应用程序服务的多租户Web API
为每个新客户分配一个新租户
客户可以有多个应用程序订阅。它的
这与该应用程序每小时管理多个数据库的说法相同
客户(他可以从相同的基本URL访问)
每个用户都属于一个客户(租户),并且将具有访问权限
所有客户的订阅
API的设置方式是,每个端点都包含租户id和订阅id,这样它就可以知道应该从哪个订阅/数据库获取数据:
/te
从IdentityServer 4文档中:
如果请求的作用域是标识资源,则将根据IdentityResource中定义的用户声明类型填充RequestedClaimTypes中的声明
这是我的身份资源:
return new List<IdentityResource>
{
new IdentityResources.OpenId(),
new IdentityResources.Profile(
已经为此挣扎了一段时间,让angular7客户端访问id4 Asp.Net core 2.2项目以登录并获取jwt没有问题,让angular7客户端访问受id4保护的Asp.Net core 2.2 api项目保护的api也没有问题
jwt.io解码(值x'd out):
ID4配置:
private static readonly string[] customClaimTypes = { "role", "jseg", "jobid", "regid", "api1" };
如果我将此示例中的客户端更改为“native.hybrid”
设定
Flow=OIDClientOptions.AuthenticationFlow.Hybrid
然后,登录到IS4就可以了(延迟5秒后),但我的默认web浏览器中会出现一个新的登录表单
与客户“interactive.public”配合很好。我的问题是,我的本地widows应用程序应该使用哪个流?我的意思是它是“OpenID连接混合流”,参见
如果要使用混合流,如何调整此示例?当前选择与OIDC一起使用的授权的经验法则是:
如何从不同用户的会话外部触发用户(完全)注销
例如,“管理员”登录并注销用户“JohnDoe”(来自IdentityServer和所有客户端)
IdentityServer支持在用户注销时通知客户端(通过前端或后端通道)。这很好,但是如何从用户会话之外开始滚动呢 令牌的问题是您不能删除令牌,您必须通过从存储中删除它来撤销它,这样它就不能再使用了。事实上,使用反向通道注销时,您也会遇到同样的问题。您不能直接删除cookie,但客户端可以在下一个请求中拒绝它
通过用户会话,后台注销可以从Identi
1 2 3 4 5 6 ...
下一页 最后一页 共 14 页