我有一些电视剧正在对ServiceStack REST服务进行调用,我用一个开箱即用的IdentityServer STS来保护它.
我正在对REST端点进行AJAX调用,我不确定如何设置登录过程来获取安全令牌.REST端点与进行呼叫的网站位于不同的域中.到目前为止,我发现的信息似乎都围绕着客户端对安全资源进行调用的过程获得302重定向到身份服务器登录页面,然后在成功进行身份验证后获得302重定向到域或者根据配置回复.我已经正确地连接了所有这些,如果我只是浏览REST服务,它会很有效.但是对于我的网络应用程序,AJAX和302s并不是最好的朋友,所以理想情况下我认为我是 d喜欢拥有来自同一ServiceStack网站的REST端点,该端点获取用户名和密码并返回安全令牌而不会出现任何重定向的复杂情况(我将处理我的Web应用程序本身中的401重定向,我将在此时获得在web.config中关闭passiveRedirectEnabled).有关如何使用IdentityServer实现此目的的任何想法?
干杯,克林特.
ajax rest federated-identity servicestack thinktecture-ident-server
我对Thinktecture的Identity Server 2的理解是没有实现单点登出.换句话说,当您退出一个依赖方时,Identity Server不会自动将用户从任何其他RP中签名.我知道有关于此的帖子,但我还没有找到任何关于如何扩展Identity Server来执行此操作的内容.我已经看到一些帖子说Identity Server已经开箱即用了...如果确实如此,我还是无法找到方法.
我有SSO与Asp.NET Web Forms,WIF和Identity Server 2一起工作得很好,而且我能够很好地退出RP,但从我可以看出,Identity Server中需要一些额外的代码才能将用户从他可能登录的任何其他RP中完全签名.
有没有人扩展Identity Server以实现单点注销?
这是可以在Identity Server中配置还是需要一些编码的东西?
如果你拥有它,我真的很感激.
谢谢.
我在IdentityServer中设置了以下客户端:
new Client
{
ClientName = "My web application",
Enabled = true,
ClientId = "mywebapp",
ClientSecrets = new List<ClientSecret>
{
new ClientSecret("somesecret")
},
Flow = Flows.Hybrid,
ClientUri = "https://app.mydomain.com",
RedirectUris = new List<string>
{
"oob://localhost/wpfclient",
"http://localhost:2672/",
"https://app.mydomain.com"
}
}
Run Code Online (Sandbox Code Playgroud)
我们说它是在线托管的https://auth.mydomain.com/core
.
尝试修改MVC OWIN客户端(混合)示例客户端以登录到上述身份服务器,在Startup.cs
我修改了ClientId
,ClientSecret
并RedirectUri
匹配IdSrv中的客户端设置.现在,当我尝试导航到需要授权的页面时,我被重定向到IdentityServer的URL.当我登录时,断点AuthorizationCodeReceived
在客户端的通知中命中,Startup.cs
然后进入循环.浏览器的状态显示:
Waiting for localhost...
Waitnig for auth.mydomain.com...
Waiting for localhost...
Waitnig for auth.mydomain.com...
...
Run Code Online (Sandbox Code Playgroud)
等等,永远不会完成登录.为什么会这样?请帮忙.
谢谢!
我运行了ThinkTecture的IdentityManager,但现在当转到'/ idm/url时出现错误:
An error occurred when trying to create a controller of type 'MetaController'. Make sure that the controller has a parameterless public constructor.
Run Code Online (Sandbox Code Playgroud)
另一个StackOverflow问题的评论中提到了错误,但没有给出解决此问题的方法.
我正在尝试整合一个声明感知的WCF服务和客户端.
我正在使用thinktecture Identity Server,我通过查看"使用带有WCF/SOAP的令牌"示例将控制台客户端放在一起:
var token = GetSecurityToken();
var binding =
new WS2007FederationHttpBinding(
WSFederationHttpSecurityMode.TransportWithMessageCredential);
binding.Security.Message.EstablishSecurityContext = false;
var factory =
new ChannelFactory<IService1>(
binding,
new EndpointAddress("https://localhost:44301/Service1.svc"));
factory.Credentials.SupportInteractive = false;
factory.ConfigureChannelFactory();
var service = factory.CreateChannelWithIssuedToken(token);
var result = service.GetData(42);
Run Code Online (Sandbox Code Playgroud)
我有(看起来像什么)来自STS的有效令牌.
但是,它在调用中引发异常GetData
,如下所示:
序列化安全密钥标识符时出错.有关更多详细信息,请参阅内部异常.
内部异常如下:
令牌序列化程序无法序列化"System.IdentityModel.Tokens.Saml2AssertionKeyIdentifierClause".如果这是自定义类型,则必须提供自定义序列化程序.
我能找到的这个问题唯一提到的就是这个问题在MSDN论坛上,但这只是略有关联.
查看调试器,似乎端点行为包括(最终)Saml2SecurityTokenHandler,其他链接暗示的就是所需的全部内容.
我错过了什么?
我开始在我的项目中使用ThinkTecture.IdentityModel,我面临一个严重的问题.请帮我一下.
错误1"类型'System.IdentityModel.Tokens.SecurityToken'在未引用的程序集中定义.您必须添加对程序集'System.IdentityModel,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用
Thinktecture.IdentityServer是否支持加密它发出的JWT令牌,例如保护令牌不被用于回复攻击?
如果是,客户端如何解密加密令牌?
我曾尝试在IdentityServer General Configuration中启用"Require Token Encryption",但是在我尝试登录后,我在身份服务器网页上收到"No encryption key available"消息.
有问题还是我错过了必需的设置?
jwt thinktecture-ident-model thinktecture-ident-server openid-connect
我们目前正在开发本机移动应用程序,我们需要使用我们的身份服务器(由thinktecture身份服务器v3制作)和/或外部社交身份提供程序对最终用户进行身份验证,以消耗我们系统中的一些资源.
我们正在尝试使用OIDC来获取访问令牌和ID令牌.在一个完美的世界中,我们希望本机移动应用程序最终用户无限期地保持记录(甚至跨本机应用程序重新启动),直到最终用户决定注销.
首先,我们选择了隐式流程.但我们发现此流程中没有刷新令牌.
1.为什么隐式流量规范禁止刷新令牌?危险在哪里?
换句话说,为什么令牌端点不具有隐式流"可达"?
然后,我们测试了混合流以获得刷新令牌(非常长寿但可撤销)和访问令牌(短期).问题是将client_secret嵌入到本机公共客户端中.(OIDC规范描述的不良和不安全的做法)
3)所以...本地公共应用程序不能使用混合流...嗯?
所以,我们现在想知道自定义代码流解决方案是否是一个好主意:创建一个"代理"/"前端"web api,它可以使用自己的安全client_secret到达令牌端点,因此,转发代码/ refresh_token/access_token请求从本机客户端应用程序到授权服务器令牌端点?
4)对此有何评论?
oauth-2.0 thinktecture-ident-server nativeapplication openid-connect thinktecture
你好我一直试图找出如何配置IdentityServer3成为一个多租户联合提供商,可以转换和丰富从ADSF,Google +,Microsoft帐户返回的索赔.
有没有人有任何试图执行以下操作的示例代码?
MyWebApp(multi-tenant) <-- IdSrv3 <---- ADFS
^
|<------- Google+
|<------- Microsoft Account
|<------- Facebook Account
Run Code Online (Sandbox Code Playgroud) federated-identity claims-based-identity thinktecture-ident-server
我们正在构建一个多租户应用程序,该应用程序将托管在全球多个数据中心(Azure)中.此应用程序还将公开API(不仅仅是MVC Web应用程序).
为了处理身份验证/授权,我们计划实施Owin OAuth,但后来我们遇到了适合我们账单的"Thinktecture IdentityServer3".
此外,如果租户在任何区域实例中拥有帐户(例如"NA1.ourwebsite.com"),他不仅应该能够通过"NA1.ourwebsite.com"登录,而且他还应该能够通过集中登录实例/身份服务器'ourwebsite.com'.
NA1.ourwebsite.com - 北美实例
EA1.ourwebsite.com - 东亚实例
目前,我们为每个租户提供不同的数据库,其用户信息也存在于各自的数据库中.
我不确定一个应用程序如何拥有多个身份服务器(我不知道是否必须选择联合服务器).
SalesForce.com完全一样,但我不知道如何.任何人都可以帮助我吗?
提前致谢.
asp.net ×2
oauth-2.0 ×2
wif ×2
ajax ×1
azure ×1
jwt ×1
owin ×1
rest ×1
salesforce ×1
servicestack ×1
thinktecture ×1