我有一个使用identityserver4框架的Identity Server,它的url是
我的web应用程序是asp.net core 2.0,其url为。此应用程序将使用Identity Server的登录页面
我想在登录后,Identity Server将重定向到应用程序页()
这是客户端应用程序的Startup.cs
Startup.cs
公共类启动
{
公共启动(IConfiguration配置)
{
配置=配置;
}
公共IConfiguration配置{get;}
私有字符串Au
Blazor客户端中RemoteAuthenticatorView的用途是什么?它似乎重定向到身份服务器,但我们不能直接通过在应用程序中创建指向身份服务器中相应页面的简单链接来做到这一点吗?它还有其他用途吗?我刚刚发现,在hrefs上使用direck链接不会将jwt令牌附加到头上,因此无法通过任何可能的安全检查。我刚刚发现,在hrefs上使用direck链接不会将jwt令牌附加到头上,因此无法通过任何可能的安全检查
我计划将IdentityServer4专门用作OIDC代理,以实现依赖外部登录提供商的单点登录场景(首先是ADFS3,但将来可能还有其他登录提供商)。换句话说,本地用户永远不会存在,我也不希望有任何登录或同意屏幕
我一直在阅读文档并研究quickstarts源代码,尽管我相信现在我已经大致了解了外部登录的工作原理,但有一件事我仍然不确定
也就是说,采取以下措施是否安全合理:
不要实现任何用户存储(既不是ASP.NET标识,也不是内存中的标识)
忽略EnableLocalLogin客户端设置,并始
对于Identity Server 4,我试图通知客户端用户已通过服务器端客户端(例如MVC)的前端通道规范注销。说
IdentityServer跟踪用户已登录的客户端,并在IIIdentityServerInteractionService上提供名为GetLogoutContextAsync的API
我想知道IdentityServer如何跟踪用户已登录的客户端?
它存储在内存中吗?如果是,在多服务器+负载平衡器环境中如何工作?默认情况下,它将该信息作为属性存储在身份验证cookie中。您可以
我已经为测试设置了访问和刷新令牌的生存期。现在,我想知道为什么访问令牌没有遵循其生存期,并且在刷新令牌生存期之前仍然有效?我不确定是否设置正确,但以下是如何配置令牌生存期:
var accessTokenLifetime = 300;
var absoluteRefreshTokenLifetime = 600;
resultClient = new Client
{
我将我的登录控件从帐户/登录移动到主页,并删除了帐户控制器及其视图。当然,这在我的机器上都可以正常工作,但当我部署到测试环境时,我会遇到一个错误:
找不到该网址的网页:https://identity.blah.blah/account/login?returnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fclient_id%3Dclient.js%26redirect_uri%3Dhttp%253A%252F%252Fblah.blah%26respons e
这与类似,但解决方案是在/authorizeURL中使用prompt=login查询字符串,这很有效,但也允许狡猾的用户删除它。此外,鉴于我没有使用.AddOpenIdConnect()建议使用OnRedirectToIdentityProvider对我不适用
那么,我们如何强制用户始终输入凭据而不依赖查询字符串中的prompt=login
以下是我的基本标识服务器4设置:
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
v
在我的解决方案中,我有3个项目:
身份服务器4
ASP.NET Core 3.1中的Web客户端
ASP.NET Core 3.1中的Web Api
到目前为止,我设法从web客户端获取id令牌,但在添加另一个API项目并尝试访问需要Identity Server 4授权才能获取访问令牌的API项目后,我收到了此错误抱歉,出现错误:当我单击“登录到Identity server”时,客户端的授权类型无效。我可以知道如何排除此错误吗
这是连接到Identity Server的myStartup
当我为客户端定义了IdP限制时,本地登录似乎不起作用。我从未被发送到重定向URL。取消IdP限制,一切正常。是否有办法在客户端IdP限制中指定本地登录提供商?IdP限制中列出的提供商是什么?我有谷歌外部供应商,所以对于一些客户,我禁用了谷歌。您可以在Login-post-action方法中设置一个断点,看看为什么它不将您重定向到重定向URL。当然,如果您使用他们的快速启动ui,则会出现此问题。我的问题是,我根据Identityserver3的文档在Idp限制列表中添加了“idsrv”。我把它改成
我很难弄明白为什么我的userinfo端点返回的状态码是204(无内容)。除userinfo端点外,所有其他端点都将按预期返回
一如既往-您需要打开日志记录以查看发生了什么…您的期权似乎返回204,但您的GET呢?正如leastprivilege所说,打开日志记录,这可能会给你更多的信息。我大部分时间都是在不打开日志记录的情况下度过的,所以我很难找到打开日志记录的地方。如果你能放纵我,我会非常感激,我确实做了日志工作,但我没有太多开始。这就是我得到的“2017-06-12 20:28:17.6
这是以某种方式自动处理的,还是我应该有一个定期删除这些内容的计划作业?我认为出于审计目的保留它们是有意义的,但是撤销会导致硬删除,所以我认为这不是这个表/实体的意图 我不知道EF对持久授权的实现是否与计划作业一起提供,但通过查看EF创建的内容,应该很容易验证这一点。我们正在使用不同的ORM来管理授权表,因此在这种情况下,是的-我们需要创建一个计划作业来清理该表。我不知道永久授权的EF实现是否附带一个计划作业,但通过查看EF创建的内容,这应该很容易验证。我们正在使用不同的ORM来管理拨款表,因此在
我不知道如何配置运行在.Net Framework 4.7.1上的mvc客户端,以使用运行在.Net Core上的IdentityServer 4(3.1)进行身份验证
我之前已经成功地针对IdentityServer4验证了运行在.net core上的客户端,但没有验证运行在.net Framework上的客户端。很遗憾,我无法将此客户端升级到.net core
基本上,我不确定如何在mvc客户端上执行此操作:
public void ConfigureServices(IServiceCol
正如标题所说,我正在寻找一种方法来强制IdentityServer4始终发出带有“secure”属性的Set Cookies
我相信属性的存在取决于连接的类型,也就是说,使用SSL它默认为安全的,而不使用SSL则不安全。问题是,我的SSL终止于容器——我在Heroku和AFAIK托管服务器,这就是它的工作方式
我们有一个使用IdentityServer4进行身份验证的web API。我正试图通过保留现有的DBs来更改身份验证服务以支持多租户。因此,每个租户都有单独的数据库
我目前正在努力配置ConfigurationStore和OperationalStore
选项01:由于每个租户都有单独的数据库,因此可以将ConfigurationDb和PersistedGrandDB相关表添加到这些数据库中
选项02:使用公共数据库保留ConfigurationDb和PersistedGrantDb相关的表
最
我有一个IdentityServer4网站,用作其他网站的OpenIdConnect权限
当用户尝试连接时,他们会输入登录名和密码,并重定向到客户端网站
我想在重定向到该网站之前添加一些验证。我试图使用EventSink,但我不知道如何使用它
public class IdentityEventSink:ievensink
{
私有只读用户管理器用户管理器;
专用只读IHttpContextAccessor httpContextAccessor;
公共身份验证(用户管理器用户管理器,IHttp
作为一个服务提供商,当尝试使用SAML2连接、使用IdentityServer4和Sustainsys.SAML2.AspNetCore2包连接到IDP时,我一直遇到运行时异常,没有真正的线索知道这是否是一个bug或如何解决它。
据我所知,这是一个完全有效的加密算法,在检索IDP URL的元数据时,它被接受为有效输入。不知道为什么它总是告诉我它不是。无法更改和删除客户端的元数据
我确实成功地连接到mock,使用
(但不确定这是否是一个有效的比较)
SAML元数据文件签名部分:
<ds:Si
希望有人能给我指引正确的方向,因为我已经为此工作了一段时间
我已经在.NETCore中创建了一个BlazorWASM。但是,我不想在服务器(API)项目中使用标识,而是想使用托管在不同项目中的标识服务器进行身份验证(这样我就可以使用独立的标识服务器)
我已经创建了一个Identity Server 4项目,还构建了Identity Razor页面(这样我就有了注册、帐户管理、密码恢复等的完整流程),而不是Identity Server生成的3个左右的基本页面
在我的Blazor客户端项目中,我在
我在同一个应用程序主机上遇到了一个共同托管Identity Server 4的问题,API服务需要它来进行身份验证和授权
现在,我能够通过纯粹的身份验证成功地复制这一点,但当涉及到使用角色的授权时,我无法使其工作,即在我的控制器操作中添加[Authorize(Roles=“My Role”)]]属性。
访问令牌包含“角色”范围和声明,但似乎根本不受尊重
我最初尝试了下面的代码,但它根本没有执行JWT承载位,这让我相信Identity Server使用了自己的处理程序来实现这一目的,我根本不知道如
我有一个带有.NET核心WebApi和IdentityServer的Angular5应用程序
在构建和部署之后,我看到了这一点
未经授权的客户机
“无效的重定向Uri”
我目前正忙于修复这个问题
以下是所采取的步骤:
此重定向Uri设置为:
我确信与RedirectUri相关的任何内容都是匹配的
(1) 在数据库中
IdentityServer数据。ClientRedirectUri,列重定向Uri
(2) 在安全项目>IdentityServer.webapi中
公共静态类配置DBContex
是否有人有在负载平衡器后面的web场(多个IIS服务器)中运行IdentityServer 4的经验?我们在让两台服务器协同工作时遇到了一些问题。我没有看到IdentityServer4的部署指南。这里有一个用于IdentityServer3
我们已经在Startup.cs中实现了数据保护
StackExchange.Redis.ConnectionMultiplexer connectionMultiplexer = RedisConnectionFactory.GetConnection(
我正在构建一个SPA应用程序,并使用IdentityServer4进行身份验证。我正在为angular使用.NETCore3.0中的新api授权模板
模板首先尝试使用iFrame进行身份验证,如果失败,则尝试使用弹出窗口,如果失败,则尝试使用重定向。我的问题是,我能否只依赖使用iframe的静默身份验证,而不依赖备份方法。我的意思是iframe在所有浏览器中都受支持,并且应该在所有设备上工作,为什么我要实现弹出或重定向流?iframe方法仅在用户已经在IDP上有一个会话并且满足任何最大年龄条件时
我认为AddDeveloperSigningCredential()不适用于部署。AddDeveloperSigningCredential()只适用于开发环境。因此,我对生产环境使用AddSigningCredential(),但获取证书的日志文件中没有私钥错误。我如何继续解决它?请引导我。谢谢
IdentityServer Startup.cs中的我的代码
您正在StoreName.CertificateAuthority中搜索证书。你是怎么把证书放在那里的?它是在没有私钥的情况下导入的。您
我查看了IdentityServer4的在线示例,但无法解决我遇到的问题
我有一个Angular 4应用程序放在ASP.NET Core 2应用程序的根目录下。ASP.NET核心应用程序没有控制器,仅托管Angular 4应用程序。这样做的原因是能够使用混合而非隐式授权,以便令牌不会发送回浏览器
现在,我可以将客户端配置为具有HybridAndClientCredentials的MVC应用程序。但它在角度方面会起作用吗?如何知道用户是否经过身份验证,如何调用API后端,在Angular应用程序中
我有一个带有IdentityServer4实现的多租户应用程序。我最近将其更新为最新的ID4,行为似乎已经改变。以前,我可以在IdentityModel包中使用TokenClient发出请求:
var parameters = new Dictionary<string, string>();
parameters.Add("username", loginModel.UserName);
parameters.Add("password", loginModel.Password
假设是这样的:
前端应用程序使用隐式流请求身份验证,用户已登录。该应用程序为用户提供了创建任务/作业的功能,该任务/作业应在未来的预定时间点代表用户执行许多事情。这也可能是一项跨越数小时(甚至数天)的长时间运行的任务。前端应用程序有自己的客户端id(隐式流),而执行计划任务的服务有单独的客户端id(和机密)
问题:
前端应用程序应该向计划任务传递什么,以便执行计划任务的服务可以作为原始用户进行身份验证
假设任务应该使用刷新令牌进行操作,以便在需要时可以获得新的访问令牌,那么它首先如何获得刷新令
我想使用IdentityServer4为我的API资源定义两个不同的作用域,类似于此:。我希望客户端应用程序在不要求用户登录的情况下命中一个端点,其余端点将通过用户交互(混合流fwiw)得到完全保护
我想我可以让它工作,这样任何一个流都可以访问API。我对上面演示的配置感到困惑的是,如何将客户端凭据流限制在有限的范围内?我不希望该流能够达到API的全部范围。只有用户登录后才能访问其余部分…API的另一个“范围”
这适用于本机/移动应用程序,因此客户端凭据的客户端机密将嵌入到应用程序中。这就是为什
我的客户坚持认为,出于安全原因,IdentityServer4不应完全托管在DMZ中,特别是考虑到它可以直接访问数据库服务器
从IdentityServer4文档和其他一些帖子来看,似乎可以在DMZ中托管MVC登录页面,并将IdentityServer4API留在防火墙后面。如果我理解正确,我可以使用LoginUrl、LogoutUrl、ApproveUrl、ErrorUrl、DeviceVerificationUrl设置来实现这一点
但是,我不确定OpenIDAPI。我的SPA应用程序不仅需要
我有这个密码
class Program
{
static async Task Main(string[] args)
{
HttpClient Client = new HttpClient();
var disco = await Client.GetDiscoveryDocumentAsync("https://intranet.mycompany.com/");
if (disco.IsError)
{
我有一个受IdentityServer4保护的Web API。我想使用AddIdentityServerAuthentication扩展方法来设置保护,因为我知道它有一些功能,如发现文档缓存等。但是我不知道如何自定义TokenValidationOptions对象来重写我的自定义
我刚刚将我的IdentityServer4从Core 2.2更新到Core 3.1。我做了一些代码更改来替换一些行,因为新的MVC端点系统。我的项目正在构建、启动,但发生了一些错误
在所有这一切中,我还想了解这些分析器是什么,以及为什么在将项目目标从Core2.2更改为3.1之后,我现在有了这个橙色警告图标?我在哪里可以获得有关此警告的更多信息?它意味着什么
我仍然被同一个项目的问题困扰着。我也仍然被同一个项目的问题困扰着。
我在Angular应用程序中使用oidc客户端js,并希望使用acr_值将IDP值传递给Identity Server 4。(Identity Server是我们的主要令牌服务,但我们已将其配置为使用Okta作为应用程序的一个租户的外部提供者。)
在“角度”中设置如下值:
this.userManager = new UserManager({
authority: environment.stsAuthority,
client_id: window.location.
ConfigurationDbContext是否有任何扩展,我们可以在使用IdentityServer4时自定义任何其他字段或索引的上下文
是否可以扩展IdentityServer4提供的模型?我想您是在询问如何定制EntityFramework.DbContexts.Config
您可以从下面的代码中获得一些想法
public class CustomConfigurationContextFactory : IDbContextFactory<CustomConfigurationDb
我正绞尽脑汁试图理解如何调用通过IdentityServer4保护的API
基本上,我有以下网站:
-IdentityServer应用程序,
-web API和
-客户端web应用程序
我的设置与IdentityServer示例一样
我定义了一个客户端,它代表我的客户端web应用程序,以及一个APIResource,它代表我的web Api
在我的客户端web应用程序中,我希望对WebAPI进行HTTP调用,但我希望显示为我是登录用户,因此我希望web Api可以使用“电子邮件”范围
我在Web
我在WWW上的常规服务器上安装了一个IS4,它非常适合许多客户端应用程序
客户端有一个网络,我需要在他们的本地局域网内安装和安装应用程序,这是无法从WWW寻址的
是否可以通过IS4实例登录到LAN内的应用程序,并让用户返回LAN内的站点
谢谢
杰夫:简言之,是的。所有IDP->客户端交互都在前端通道中完成,即在用户浏览器的上下文中完成。客户网络中的客户端应用程序需要能够连接到您的IDP,但反之亦然
我正在使用Identity Server 4,需要与外部授权API交互。
授权过程必须如下所示:
客户端将基于用户数据生成的令牌发送到IdentityServer
IdentityServer创建具有特定标头和正文的POST请求
IdentityServer将此请求发送到ExternalAuthApi并获取包含令牌的响应
IdentityServer将该令牌返回给客户端(并缓存它)
我查阅了有关外部身份提供者的文档,但它需要客户端和ExternalAuthApi之间以某种方式进行交互,这是我需要
IdentityServer4文档中写道:
该中间件的工作是:
验证传入令牌以确保它来自受信任的
发行人
验证令牌是否可用于此api(aka)
范围)
我有一个IdentityServer4服务器在端口5000上运行,我的API在端口5001上运行(两个不同的服务器)。我想知道当一个带有访问令牌的请求进来时,API的幕后会发生什么。。。API中的IdentityServer中间件是否为每个传入API的请求对IdentityServer进行http调用以验证令牌?它会以某种方式影响代币吗?实际
我们有几个用户,我们可能正在与其他用户共享他们的用户帐户。我们正在考虑在IdentityServer4中添加功能,以限制用户为防止这种行为而必须进行的并发会话的数量
这不会阻止用户在一天中不时共享用户帐户,但我们至少能够停止并发使用我们的系统
我们正在考虑计算每个用户帐户使用的刷新令牌的数量,如果它们超过某个限制,则删除该用户最早的刷新令牌和访问令牌,直到刷新令牌的数量等于允许的限制
关于如何使用IdentityServer4实现此功能的任何信息?我们还想通知用户,为什么引用令牌被删除,从而导致
我使用的是角度前端、.netcore API和identityserver4。
我正在测试开发环境和生产环境的AddSigningCredential(证书)。在我的本地工作正常,从identityserver4登录成功后,从identityserver4登录重定向到font end,可以生成访问令牌,也可以访问API数据
但对于我的生产部署,虽然可以使用AddSigningCredential(证书)生成访问令牌,但访问API时会出现500个内部服务器错误。我错过什么了吗?请告知。谢谢
我在I
我使用ASP.NET Core 3.1和Identity Server 4从SPA启动登录过程
登录后,我对IS4应用程序验证cookie有以下声明:
sub 1
AspNet.Identity.SecurityStamp RRHNY65RQMUHTXXSIZKT2YORA3QQ2WAC
role Admin
preferred_username i
我正在为谷歌开发一个动作,我正在使用Visual Studio C和Identity Server 4。我按照Gooogle的指示创建了我的客户机,但现在我有一个问题,我已经和我的客户测试了一段时间,效果非常好
new Client
{
ClientId = ApiDefinitions.ClientIdGoogle,
RedirectUris = { "https://oauth-redirect
我正在使用IdentityServer 4。我的设置与IdentityServer文档中的asp.net Identity quickstart非常相似
我希望能够从IdentityServer web应用程序启用单个注销,以便在调用此POST方法时,它从所有连接的应用程序注销
我有一个IdentityServer web应用程序和一个MVC web应用程序,它使用由IdentityServer应用程序介导的Asp.net标识
根据quickstart的默认设置,当您从IdentityServe
我是OIDC/OAuth2的新手,希望能为IS4建立一个单点登录服务器。我有一个设计的想法,但不确定它是否是对索赔的正确使用
我们有多个不同公司使用的应用程序。通常情况下,一个给定的身份只能访问单个公司在这些应用程序中的资源,但是有些身份可能可以访问多个公司的资源,例如,为多个客户记账的会计师
我想在JWT中提供这些公司ID作为索赔。这是合适的还是有一种更普遍接受的方法来实现这一点?我个人会避开这一点,并在客户端应用程序或API中保留授权方面的内容。也就是说,公司1和公司2的数据库表示用户xyz
我们正在实现IdentityServer4,并试图找出为什么我们没有得到刷新令牌。使用创建的示例,我试图确保至少在本地计算机上获得刷新令牌。到目前为止没有运气
客户端的配置如下所示:
新客户端
{
ClientId=“客户端”,
AllowedGrantTypes=GrantTypes.ClientCredentials,
ClientSecrets={newsecret(“Secret.Sha256())},
AllowedScopes={“api1”},
AllowOfflineAccess
当我从一个应用程序注销时,如果我已登录,我也应该从其他应用程序注销。我正在浏览很多网址,但没有得到。如何在使用Identity Server的.net core 3.1中实现这一点?Identity Server支持服务器端客户端(如MVC)、服务器端客户端和基于浏览器的JavaScript客户端(如SPA、React、Angular等)。阅读更多
样本客户:
编辑:
要实现前频道注销,您需要进行两项更改:
在客户端应用程序上添加前端通道操作,如下所示:
IdentityServer支持用于服务
我有这样一个问题:
我正试图通过这种方式为我的identityserver 4安装证书
var path = Path.Combine(Environment.ContentRootPath, "IdentityServer4_certificate.pfx");
var certificate = new X509Certificate2(path, "Password");
通过本项目认证
在本地计算机上启动时,它可以工作,但在发布到Window
Identity Server 4是否支持开放ID金融API()。如果答案是否定的,是否有计划包括对FAPI的支持?我们确实支持读取模式规范-请参见此处
如果您对在FAPI场景中使用IS感兴趣。通过以下方式开始与我们的对话:
我有一个ASP.NET核心应用程序,它有一个Angular 7 SPA,使用IdentityServer4和OAuth 2.0资源所有者密码授权以及实体框架存储。这段代码在使用IIS的Windows上运行,我正在尝试将我的开发转换到Ubuntu。我在Windows和Kestrel上也有同样的错误
我对Kestrel中Ubuntu上的自签名证书有问题。当我调试应用程序时,Chrome会将证书显示为有效,但是,当用户尝试进行身份验证时,我会收到一个SSL错误,根据验证过程,远程证书无效
我认为这是一
IdentityServer中是否存在范围只能属于单个ApiResource的限制
在我看来,IdentityServer使用允许的作用域列表来查找它们所属的ApiResource,构建了一个访问群体列表,并且每个作用域只属于一个ApiResource
我们定义了以下一组ApiResources及其作用域:
ApiResource Scopes
------------------------------
api/Orders api/Orders
api/Products
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
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 14 页