我正在使用IdentityServer4为我的新服务提供身份验证和令牌生成,我已经成功地实现了这一切。我已将我的服务器配置为使用Azure AD作为oidc提供程序,该提供程序在我的登台环境中正常工作,因为Azure AD的ip地址已在防火墙中配置。今天,该ip地址似乎已更改,因为我的代码无法调用Azure AD以获取openid众所周知的配置()
我使用以下代码配置提供程序:
services.AddAuthentication()
.AddOpenIdConnect(
在我的例子中,我有几个EF上下文共享同一个数据库(即,所有表都在同一个db上),我希望在所有上下文之间共享同一个SqlConnection,这样我就可以在同一个事务中应用多个更改
为了实现这一点,我首先用以下代码注册SqlConnection:
services.AddScoped(sp => new SqlConnection(Configuration.GetConnectionString("DefaultConnection")));
完成此操作后,我更改了其中一个EF上下文,以
我正在Blazor WASM client/API后端的一个项目中工作,其中IdentityServer4用于身份验证,Dapper用于访问自定义用户存储的数据。大部分代码是直接从下面的文章中窃取的
我已经为User、Role、UserStore、RoleStore和SignInManager实现了自己的类,并在IdentityServer4 Quickstart项目的启动中注册了它们,如下所示:
services.AddIdentity<CustomUser, CustomRole&g
我已经用谷歌安装了我们的IS4服务器。登录时一切正常。现在有一个我似乎无法解决的问题。当使用谷歌时,它将用户名作为一个数字提供给我。这是意料之中的。如何获得用户登录时的正确显示名称?正确的方法是什么?现在我正在使用IdentityServer4.Extensions.PrincipalExtensions.GetDisplayName()来显示名称,并显示GoogleId
我正在使用新的独立Blazor WASM身份验证流和IdentityServer 4。我想向用户提供一条消息,说明他们由于不活动而注销。我已经用一个低质量的js alert()实现了这一功能,但我想知道是否可以用一个自定义的弹出窗口或者一个重定向参数发送到identityserver,在identityserver登录页面上向他们显示警报
我不太明白如何中断onlogoutsuccessed之后发生的立即重定向。js alert()暂停重定向并工作。我是否可以修改传出登录重定向uri以向IDS4
我已经在我的系统中集成了Identity server,现在我想保留Identity server令牌,以便用户在浏览器关闭后不必重新登录
这是我的密码
//Identity server
if (bool.Parse(_appConfiguration["IdentityServer:IsEnabled"]))
{
IdentityServerRegistrar.Register(services, _appConfiguration);
我正在使用MVC core 2和IdentityServer 4,外部用户已成功登录,我面临的问题是此函数在HomeController中始终返回null
var info = await _signInManager.GetExternalLoginInfoAsync();
但它在AccountController中工作,当用户登录并从IdentityServer重定向回客户端时
public async Task<IActionResult> ExternalLoginCal
我找了4天的解决方案,但什么也没找到。
我想要的是从我的身份服务器获得一个带有客户端\u凭据的访问令牌授权类型。我发现你可以做到这一点,但没有解释如何制作证书,如何提出请求等。
我尝试了很多方法,但没有成功。
从文档中可以看出:我们的默认私钥JWT秘密验证器期望完整(叶)证书在秘密定义上为base64。然后,该证书将用于验证自签名JWT上的签名。我相信base64就是.cert文件的内容。根据请求,我是否也应该将.pfx文件放在base64中
我是否需要对红隼的program.cs文件进行任何更
上下文变量(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
我已经为我的JS客户端配置了IdentityServer4,我正在使用ResourceOwner流来获取访问令牌并对用户进行身份验证。此流程可用于JS客户端和移动应用程序
现在,我想使用我的IdentityServer4通过外部提供商(如Facebook、Twitter等)验证我的本地移动应用程序客户端
我已经使用外部提供商运行了IdentityServer4的示例,但我想从本机应用程序(android、ios)验证我的移动应用程序用户,请给我建议如何实现这一点?我知道没有重定向是不可能的,这没
如何将SPA(在我的示例中是vuejs)与identityserver一起使用。在javascript客户端的演示应用程序中,他们使用重定向来登录页面以获取身份。但是我想从我自己的页面登录。如何实现这一点?您是否正在使用npm软件包
它支持使用高级UserManager类以多种方式登录。这些是:
重定向(在演示中可以找到)
使用弹出窗口
使用iframe
编辑:iframe选项只能用于静默非交互式重新身份验证。典型的情况是,如果您访问的令牌已过期(例如,一小时后),并且您的身份提供程序上仍有
我希望我的Identity Server 4服务器为一些注册的客户端提供附加服务(例如,“MyAdditionalService”)。他们将通过在服务器上定义的自定义端点使用该服务
我正在考虑为我的服务定义一个API(例如,名为“myAdditionalService”),以便根据客户机的配置授予对此类服务的访问权。但是,我不确定如何限制对端点的访问(MVC-Action方法),只允许允许使用API的客户端(可能代表用户)
我发现我可以做到:
services.AddAuthorization(
没有为IdentityServer4 API资源定义机密是否会导致安全漏洞
我对内省端点有点困惑,当它被使用时,以及是否有人可以使用内省端点绕过授权并在没有定义秘密的情况下访问API(通过仅将API名称作为参数的帖子)
这可能吗?或者内省端点是否仅通过使用客户端凭据授权之类的已定义客户端授权?内省端点将仅验证已发布的令牌,它不应在其请求中接受API名称
它可用于验证引用令牌(如果使用者不支持适当的JWT或加密库,则验证JWT)。内省端点需要使用作用域密码进行身份验证
这不应该是您需要实现的端点
我们正在开发由Blazor服务器(针对.NET Core 3,使用ElectronNET.API 5.22.14)和Blazor客户端(针对.NET标准2.1)组成的新产品
我们不想在Blazor服务器中托管identity server,因为我们有一个现有的identity server 4服务器
是否可以在Blazor客户端中显示带有登录/注册选项的登录页面,该客户端通过IdentityServer4服务器进行身份验证(例如identity server中的本地DB登录)?-我在网上找到的所
我正在研究IdentityServer4作为管理用户和API访问令牌的可能解决方案。有一点尚不清楚,即是否可以通过API调用提供身份验证,或者我们是否被迫使用由IdentityServer4托管的登录页面
关于移动应用程序中的用户体验,在应用程序中提供一个简单的登录屏幕总是比打开一个处理登录过程的网页更好
我们是被迫使用由IdentityServer4托管的登录/注册页面,还是可以通过API调用来处理该页面?从服务器读取,对服务器进行API调用就足够了。
在服务器端,将有一个使用Identity
我正在处理IS quickstart,在将IdentityModel添加到客户端项目时遇到问题。我通过VS.Net安装了NuGet软件包,它看起来很成功,但是在那之后,程序集没有从参考列表中显示出来。我错过了什么?我需要浏览文件系统才能找到dll吗?如果是,在哪里?添加IdentityServer4 NuGet包时,它依赖于IdentityModel。所以它已经被添加了,这就是你看不到的
您可以看到它的依赖关系
在Visual Studio中,如果您深入查看依赖项->包->标识服务器4节点
我在
我喜欢使用EntityFramework持久化IdentityServer4配置数据。但我想知道为什么相同的模型类在模型/实体中重复?两种型号是否始终保持同步?如果我使用实体,我是否仍然可以包括Models项目以使用一些方便的常量和枚举类,这些类在模型中可用,但在实体中不可用?或者在使用实体时不包括模型库以防止混淆更好吗
请注意。模型在IdentityServer4.EntityFramework库中复制,以便将模型映射到对实体框架有意义的实体(请参阅许多需要转换为实体的字符串列表,以便将其存储
使用Identity Server Aspnet Identity Quickstart和EntityFramework进行持久存储
我在登录页面中添加了一个下拉列表以及用户名和密码字段。用户应该在登录Identityserver时从下拉列表中选择一个值
如何将下拉列表中选定的值添加为该特定会话的声明,并将其与请求的声明一起发送回客户端
我的客户端是MVC应用程序,它使用混合流与Identity Server进行通信
IdentityServer v2.0.2
MVC客户端:AspNet Cor
我有一个应用程序,当前使用资源所有者密码授权类型,允许用户通过单页应用程序登录。identity server当前托管在与Web API相同的项目中。但是,我们想为用户添加使用其Google帐户注册/登录的功能。目前,用户数据存储在表中,并由ASP.NET核心标识管理
是否有一种方法可以让“本地”用户在应用程序中既可以使用资源所有者密码授权类型,又可以通过Google启用第三方身份验证?目前,我们使用用户名和密码访问Identity Server令牌端点,并将令牌存储在浏览器中。然后将其传递给需
我的身份验证服务器使用IdentityServer4。
为客户端配置如下重定向
RedirectUris = new List<string>
{
"https://localhost:44342/signin-oidc"
}
RedirectUris=新列表
{
"https://localhost:44342/signin-oidc“
}
对
我们使用IdentityServer作为web应用程序和API资源的openid提供者。
我想在identity server上为编辑用户公开一个安全的api端点,但不知何故,我无法使配置正常工作。我的客户是棱角分明的,我有一个有效的持票人代币
app.UseCors("AllowSpecificOrigin");
app.UseIdentity();
app.UseIdentityServer();
app.UseCookieAuthentication(new CookieAuthentic
当我提到各种文件和文章时,我没有得到这些术语,并且混淆了很多
那么,有人能帮上忙吗
我托管我的identity server使用地址并使用nginx映射到
当我尝试像在客户端中那样请求发现文档时,出现连接到的错误。对象引用未设置为对象的实例。
我尝试将发卡机构更改为https地址,并使用定制的DiscoveryDocumentRequest。但这不是工作
当我删除nginx和access时,它工作得很好
IdentityServer:Startup.cs
public void配置服务(IServiceCollection服务)
{
//…其他代码
var builder=se
我们正在创建包含web前端的B2B软件,不同的用户在同一个浏览器实例和同一个windows用户会话上经常使用该软件
用户通过使用我们的注销功能“注销”我们的web前端。这将确保从浏览器存储中删除访问令牌,以便网站无法再针对基于IdentityServer4的身份提供商进行身份验证
最近,我们让一名安全工程师检查了这个系统的不同漏洞
他告诉我们,由于我们在IdentityServer4中使用混合流或隐式流,因此存在会话劫持漏洞,因为这些流使用回调URL将登录的结果访问令牌传输到用户登录的站点
我们
我正在考虑构建一个实现IdentityServerIResourceStore接口的类。我的目标是为自定义存储库中定义的IdentityResource和ApiResource集合提供服务
理想情况下,我将接收对这些资源的请求,并使用与查询相关的子集进行响应。简言之:你只得到你想要的
GetAllResources()方法让我怀疑:IdentityServer是否真的要求我从存储库中提取整个身份和API资源集并使其可用?目前,我不知道这些集合将增长多大,也不知道从存储库中提取它们的成本
简单地使
我想在数据库中存储PersistedGrants,以便Azure向外扩展
我更喜欢从appsettings.json而不是从数据库中读取IdentityResources/apirources/Clients(Config)
从示例中可以看出,这两种方法都可以持久化到数据库
是否可以在存储授权时不将配置数据加载到数据库中?如果是,怎么做
这项工作:
services.AddIdentityServer((options) =>
{
o
我有一个web应用程序(SPA),当请求注销时,用户同时传递访问令牌和刷新令牌
注销终结点受到保护,因此被吊销的访问令牌必须与经过身份验证的令牌相匹配
但是,我如何验证被请求撤销的刷新令牌是否是该用户的刷新令牌,或者在某种程度上与该访问令牌存在关系
注意:当撤销访问令牌或刷新令牌时,我会专门撤销请求的内容
最终目标是阻止恶意用户撤销属于其他人的刷新令牌
我知道这种可能性很小,但我的问题仍然存在。您可以将注入到注销端点所在的类中,使用IRefreshTokenStore的GetRefreshTok
我已经设法让我的IS4与Google web应用程序身份验证一起工作
services.AddAuthentication()
.AddGoogle("Google", o =>
{
o.SignInScheme = IdentityServer4.IdentityServerConstants.ExternalCookieAuthenticationScheme;
o.ClientId =
我使用的是IdentityServer 4,我希望允许资源所有者流,但仅限于具有特定IP地址的客户端。如何配置它?您只需将IHttpContextAccessor注入资源所有者验证程序即可。这将允许您访问HTTP请求
通过这种方式,您可以检查IP地址。您只需将IHttpContextAccessor插入资源所有者验证程序即可。这将允许您访问HTTP请求
这样,您可以检查IP地址
IdentityServer中是否存在范围只能属于单个ApiResource的限制
在我看来,IdentityServer使用允许的作用域列表来查找它们所属的ApiResource,构建了一个访问群体列表,并且每个作用域只属于一个ApiResource
我们定义了以下一组ApiResources及其作用域:
ApiResource Scopes
------------------------------
api/Orders api/Orders
api/Products
在每个IdentityServer4快速入门示例中,都有为资源、客户端和用户提供的内存中提供程序。是否有生产所需的适当接口覆盖的示例
例如,IProfileService是要为用户管理覆盖的类,但是没有使用该类的示例,并且在参考部分中没有关于该类的成员是什么的规范。在实现它时,您会得到需要重写的方法,但所有返回类型都是Task,并且没有关于细节的有用说明。我也遇到了同样的问题,最后查看了默认实现(IdentityServer4实现这些接口的方式)
没有IProfileManager因此,如果您的
当我通过Identity Server 4对用户进行身份验证时,即使电子邮件确认=false,它仍会进行身份验证
如果email confirmation=true,我应该怎么做才能进行身份验证?更具描述性,并显示更多代码,以便人们能够理解和帮助。您如何验证您的用户?您可以发布您的AccountController.cs吗?您成功实现了吗?我也想要:)
Im正在搜索有关身份验证的解决方案。
我找到了IdentityServer,我试图了解它是如何工作的。
在我的情况下,我需要检查用户是否存在于另一个应用程序中。
我在asp.net web froms中创建了一个旧项目,该项目的用户集合存储在数据库中。
现在,我必须创建将被调用到WebApi的客户机,在这个WebApi中,我需要对用户进行身份验证。我想使用IdentityServer4执行此操作。我是否可以在IdentityServer中调用我的旧应用程序或db此应用程序,并通过自定义方法检查用
应用程序中有四个客户端:
angular.application-资源所有者
identity_ms.client-webapi应用程序(.net core 2.1)
具有网络身份的IdentityServer 4
AccountController具有注册用户、重置密码等共享操作
具有安全操作的UserController。
UserController的数据操作具有[Authorize(Policy=“user.Data”)]属性
ms_1.client-webapi应用程序(.net
我想使用IdentiyServer4并添加用于SAML身份验证的KentorAuthServices中间件
从中,建议添加Microsoft.AspNetCore.Authentication.Cookies包,并使用登录类型为IdentityServerConstants.ExternalCookieAuthenticationScheme的中间件
我配置了相同的,但无法在变量info中获取访问令牌
public async Task<IActionResult>
我开始使用Identity Server 4(在ASP.NET核心下)使用隐式流来保护Angular 2前端(到Web API服务)
使用,我可以成功地从示例的默认页面重定向到登录页面,让用户进行身份验证,然后重定向(通过/connect/authorize)返回Angular站点的回调
如果用户直接浏览到我的身份验证登录页面(而不是Angular主页),我就可以进行身份验证,但无处可重定向。如果手动重定向到auth服务器的/connect/authorize页面,OIDC客户端将报告“在存储中
我对使用identityserver4有点陌生,过去几天我读了一些文章,遇到了一个问题,或者可能只是我的知识不够;无论如何,我的问题是:
根据我的理解,我将构建一个angularjs应用程序,我应该坚持隐式授权类型,现在我关心的是我正在构建的应用程序首先验证它的用户(用户名-密码),但该用户将属于一个客户端,这样可以吗
通过查看Startup.cs中我当前正在使用或引用的一个示例上的大量示例应用程序,可以配置其具有的方法:
app.UseOpenIdConnectAuthentication
在我配置EntityFramework代码不工作之后,我只是喜欢这个页面中的doc
正如文档在最后一页所说,“您现在应该能够运行任何现有的客户端应用程序并登录、获取令牌和调用API–所有这些都基于数据库配置。”。但当我运行控制台应用程序时,我看到以下内容,无论服务器信息看起来是否正常,这都是正确的。我确信我在启动客户端之前启动了服务器。我无法找到谷歌和堆栈溢出的原因或相关内容。我想知道“密钥集丢失”的含义是什么,以及如何修复它 您是否添加了以下内容
public void ConfigureSe
我已经为一个asp.net mvc网站设置了identityserver 4,并将其用于身份验证隐式授权类型。我需要有令牌更新时,用户修改帐户的配置文件,但它不是索赔
一切都在愉快的道路上运行良好,客户验证,然后重定向回网站,索赔通过-一切都很好
我的网站有一个链接,将用户发送回IdentityServer,以便更新配置文件名、电子邮件、电话等,但一旦完成并将用户发送回网站,则不会使用新信息更新声明
我可以看到我的用户索赔工厂正在从配置文件服务中调用,并且新的配置文件信息正在索赔中设置,但是我的
假设我打开了两个应用程序,每个选项卡中都有一个,它们都使用相同的SSO服务器。用户在应用程序A中全局注销前端频道,但应用程序B在另一个选项卡中保持打开状态。前端频道负责擦除cookies,但理想情况下,会有一种方法将应用程序B重定向到“您已注销”页面。然而,由于不可能通过javascript检测HTTPOnly cookies,因此在应用程序B的选项卡中运行的javascript如何检测cookie的删除并指导用户?我想我们也可以编写一个非HTTPOnly cookie并对其进行监控,但我认为可
似乎定义的PersistedGrant表创建脚本与IdentityServer4的代码不同步。我已将该脚本应用于我的数据库,并按照所述配置了持久性,但当我测试登录时,出现以下错误:
SqlException:列名“ConsumedTime”无效。
列名“Description”无效。
列名“SessionId”无效
堆栈跟踪在以下代码行中显示了这种情况:
IdentityServer4.EntityFramework.Stores.PersistedGrantStore.StoreAsync(P
我有identity server 4安装程序和我的asp net核心应用程序。若您点击了一个安全端点,它将重定向到Identity Server,您可以登录。登录后,它会重定向回您最初尝试访问的url。我想做的是在重定向之前检查您是否已在我的数据库中注册。我以为我可以将“重定向URI”更改为我选择的url,但当我这样做时,它没有任何效果。该端点上的断点永远不会命中。设置post identity server登录注册屏幕需要做什么
这样做对吗
谢谢
Michael如果我正确理解您的问题,您希望
我在aspnetcore API服务(作为无状态服务在服务结构中运行)中设置了IdentityServer4,该服务使用Azure密钥库中生成并保存的签名证书。在Startup类中,我使用AddSigningCredential方法来设置初始签名证书,但我不确定在初始签名证书过期时使用新签名证书所需的步骤
我将密钥库配置为在前一个证书过期之前生成新证书,并在我的服务中运行后台进程,定期从密钥库检索证书,并检查它是否与IdentityServer当前使用的证书不同
我不知道如何设置新证书以供Ide
我已经玩了几个星期的blazor wasm asp.net core托管项目,昨天我在服务器端添加了几个控制器,一切正常(也登录了)。。今天回来,identity server刚刚停止登录??我可以通过swagger访问api(从而访问数据库),但当我进入identity的登录页面并与用户登录时,iis就会关闭。。没有日志,不知道为什么。我可以注册用户,除了登录,我几乎可以做任何事情
登录时,在调试日志控制台中看到的最后一件事是:
"Name": "Token
即使注册了AddDefaultIdentity,我也会遇到以下异常
System.InvalidOperationException: Service type: IUserClaimsPrincipalFactory`1 not registered.
这是身份注册码:
services.AddDefaultIdentity<ApplicationUser>(options =>
{
//Disable account
我有一个.NET核心身份提供程序(也使用IdentityServer 4),它使用Azure AD对SPA应用程序进行身份验证。我正在使用从Azure接收的对象标识符值添加一个“oid”声明。问题是,从SPA应用程序中,我可以在ID令牌中看到“oid”声明,但在访问令牌中看不到它。我还需要访问令牌中的oid。以下是相关代码:
Startup.cs
services.AddAuthentication()
.AddCookie("Cookies", options =&
1 2 3 4 5 6 ...
下一页 最后一页 共 10 页