标签: single-sign-on

跨域单选择性登录

它不是我正在寻找的显式跨域会话,但它是解释我想要的最简单的方法.

我有一个创建网站的系统.这些网站托管在许多不同的服务器上.

用户可以创建他们的帐户,然后他们可以创建许多网站.他们可以创造

www.mysite.com subdomain.mysite.com并创建许多不同的网站.

有时,网站将完全不同,但有时,网站实际上会如此紧密地联系在一起,以至于它们应该被认为是同一个网站.

例如:(完全不同的域名)mysite-news.com mysite-blog.com或(同域,不同的子域名)news.mysite.com blog.mysite.com

我需要的是为用户提供他们想要的方法,创建一个排序联合,允许通过单击复选框,允许他们允许跨站点登录.我不能更改配置,除非它是永久性的更改,不会影响其他网站,因为1000个网站将受到影响.

你认为最好的方法是什么呢?OpenID,SSO?

我需要一些对网站来说很简单的东西来创建一个"联合",然后允许他们的签名是跨域的.如果有人想加入,那么他们可以.

php openid single-sign-on

4
推荐指数
1
解决办法
3053
查看次数

JSP + Tomcat:单点登录

如何使用Tomcat服务器为许多JSP应用程序创建单点登录的最佳方法?

java jsp tomcat single-sign-on

4
推荐指数
1
解决办法
6883
查看次数

单点登录页面的集成测试

如何在集成测试期间使用单点登录(SSO)登录测试页面(例如使用caybara或cucumber)?对于正常登录,您将编写一个方法来访问登录页面,填写表单并提交.如果登录表单来自Shibboleth或OpenAM/OpenSSO等外部SSO服务器,则这有点困难.如何为受SSO保护的页面编写集成测试?

类似的问题是使用单独的搜索服务器(Solr或Sphinx)进行集成测试.您可能会通过使用某种形式的模拟或存根来解决它.有人能给出一个很好的例子,如何模拟或存根黄瓜或水豚的SSO?如果这太难了,那么搜索服务器的类似示例也会有所帮助.

integration-testing opensso cucumber single-sign-on capybara

4
推荐指数
1
解决办法
4448
查看次数

是否可以在不触发“权限请求”对话框的情况下从 AccountManager 获取身份验证令牌?

我正在开发一个客户端-服务器应用程序,并希望为用户提供单点登录,他们可以在其中使用 Google 登录。我计划通过使用 AccountManager 在手机上获取访问令牌,然后将此令牌发送到服务器以验证令牌并登录用户来执行此操作。

当我在 AccountManager 中调用 getAuthToken 方法时,会显示一个对话框,其中用户必须允许这样做,但是 Android 上的 Chrome 允许您登录并将浏览器数据与您的 Google 帐户同步,而不会显示此对话框。因此,Chrome 似乎能够在不向用户显示任何对话框的情况下获取访问令牌,如果我可以对我的应用程序执行相同操作,那就太好了。

在查看 Android 的源代码和getAuthToken实现时, 如果应用程序是预安装的应用程序或者应用程序的 UID 与(Google 帐户的)身份验证器的 UID 相同,则似乎会自动授予访问权限。

我的应用程序和 Chrome 都没有预装,所以在这两种情况下检查都是假的。我的应用程序当然不能与 Google 帐户身份验证器共享 UID,而且我认为 Chrome 有可能与身份验证器共享 UID,因为 Google 创建了它们。如果是这种情况,那么它将解释为什么 Chrome 不显示任何对话框。

在请求我可能丢失的访问令牌时,是否有其他方法不向用户显示此对话框?

android oauth single-sign-on accountmanager

4
推荐指数
1
解决办法
1801
查看次数

在Django应用程序中集成ADFS 2.0身份验证的最佳方法

我需要在Django应用程序中使用Active Directory联合身份验证服务(ADFS)身份验证.我将创建一个身份验证后端,但是有人会建议我使用哪个工具尽可能快地实现它,或者从头开始实现身份验证会更好吗?

我已阅读微软网站上的一些文章,并检查过:

但即使他们解释了一些关于ADFS和SSO的核心概念和想法,我认为这些例子更多地集中在.NET堆栈上.

authentication django adfs active-directory single-sign-on

4
推荐指数
1
解决办法
3263
查看次数

WS-Federation真正做了什么(深入并通过一个简单易懂的例子)?

我已经阅读了一些关于WS-Fedaration的文章,但我无法理解.我有一些问题 :

  1. 如果没有WS-Federation会发生什么?
  2. 单点登录有何帮助?
  3. WS-Trust和WS-Federation有什么区别?

我想在现实世界中以非常简单易懂的样本获得答案!我已经阅读了很多但我无法理解它

谢谢

asp.net single-sign-on sts-securitytokenservice ws-federation ws-trust

4
推荐指数
1
解决办法
2993
查看次数

如果我有服务器端代理,可以将Oauth2授权代码流用于SPA(React应用)吗?

看完有关OAuth2的大量教程之后,有一种最佳实践,每个人都反复声明-如果您有React应用(或Angular或Ember),则必须对其使用隐式流

我了解将客户端凭据存储在公开可见的javascript中不起作用。但是,我的情况有些不同:

  1. 我仅将Oauth2用于微服务的单点登录和令牌生成。我选择它而不是简单地生成令牌,因为受支持的第三方库是围绕Oauth2想法构建的。
  2. 我的想法是拥有一个React应用程序和一个ASP.NET MVC应用程序,该应用程序可以处理JavaScript并充当API请求的代理。用户通过使用Oauth2授权代码流对服务器端应用程序进行身份验证。
  3. 然后,如果需要从API检索数据,可以从React调用我的ASP.NET MVC应用程序(通过发送一个简单的cookie)。MVC应用程序保留令牌,而不会将其暴露给用户的浏览器。
  4. 显然,当被调用时,我的MVC应用程序会将请求重定向到必要的API,并提供承载令牌。

为了更好地理解为什么这是我想出的原因,以下是我收到的一些可能不常见的要求:

  1. 我真的不希望共享访问令牌-即使访问令牌的寿命相对较短。
  2. 我还希望能够将每个用户帐户限制为3个并发用户会话。使用cookie和服务器端会话很容易做到。

我无法确定为什么这个想法会那么糟糕。是否有任何技术问题可能会阻止此工作?还是存在安全风险?

single-sign-on oauth-2.0 openid-connect microservices identityserver4

4
推荐指数
1
解决办法
2650
查看次数

使用 AWS Cognito 和子域进行 SSO

我可以使用 AWS Cognito 轻松地将身份信息传递到多个子域吗?如果我有三个应用程序(app1.example.com、app2.example.com、app3.example.com),如何登录 app1,然后将身份信息传递给 app2 和 app3?我已经阅读了文档并看到了诸如 之类的方法getIdToken().getJwtToken,但我还没有看到如何将此类数据传递给以便我可以使用身份。

//Login.ts
let cognitoUser = new CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, function(){
    onSuccess: function(result){
        let jwt = result.getIdToken().getJwtToken();
        //Is it possible to pass this jwt token (or something else)
        //to app2 and app3 so I can later fetch the user from the identity pool from those apps?
    }
});
Run Code Online (Sandbox Code Playgroud)

amazon-web-services single-sign-on amazon-cognito

4
推荐指数
1
解决办法
8083
查看次数

IdentityServer4分别对每个客户端进行身份验证

我使用两个不同的客户端。IdentityServer4提供API保护和登录表单。我可以配置客户端以避免单点登录吗?我的意思是,即使我登录了第一个客户端,我也需要登录第二个客户端。

我的ID4配置:

internal static IEnumerable<Client> GetClients(IEnumerable<RegisteredClient> clients)
{
    return clients.Select(x =>
    {
        var scopes = x.AllowedScopes.ToList();
        scopes.Add(IdentityServerConstants.StandardScopes.OpenId);
        scopes.Add(IdentityServerConstants.StandardScopes.Profile);
        scopes.Add(IdentityServerConstants.StandardScopes.OfflineAccess);

        var client = new Client
        {
            ClientId = x.Id,
            ClientName = x.Name,
            AllowedGrantTypes = GrantTypes.Hybrid,

            RequireConsent = false,

            RefreshTokenExpiration = TokenExpiration.Sliding,
            RefreshTokenUsage = TokenUsage.ReUse,

            ClientSecrets = {new Secret(x.Secret.Sha256())},
            RedirectUris = new[] {$"{x.Url}/signin-oidc"},
            PostLogoutRedirectUris = new[] {$"{x.Url}/signout-callback-oidc"},

            UpdateAccessTokenClaimsOnRefresh = true,

            AllowAccessTokensViaBrowser = true,
            AllowedScopes = scopes,
            AllowedCorsOrigins = {x.Url},
            AllowOfflineAccess = true
        };

        return client;
    });
}
Run Code Online (Sandbox Code Playgroud)

所有客户端都有相同的注册码(也许这是一个问题):

const string oidcScheme = …
Run Code Online (Sandbox Code Playgroud)

authentication single-sign-on identityserver4 asp-net-core-spa-services

4
推荐指数
1
解决办法
3391
查看次数

有没有办法在 keycloak SAML 断言中过滤/避免重复的属性名称?

我正在尝试使用 nextcloud (13.0.4) 和 keycloak (4.0.0.Final)(作为 SSO/SAML IDP 和用户管理解决方案)设置SSO,SSO with SAML, Keycloak 和 Nextcloud 中所述

但是,尝试使用在 keycloak 中配置的 SSO 测试用户登录 nextcloud,nextcloud 抱怨以下错误:

OneLogin_Saml2_ValidationError: Found an Attribute element with duplicated Name

/var/www/html/nextcloud/custom_apps/user_saml/3rdparty/vendor/onelogin/php-saml/lib/Saml2/Auth.php - line 177: OneLogin_Saml2_Response->getAttributes()
/var/www/html/nextcloud/custom_apps/user_saml/lib/Controller/SAMLController.php - line 219: OneLogin_Saml2_Auth->processResponse('ONELOGIN_1111a8...')
[internal function] OCA\User_SAML\Controller\SAMLController->assertionConsumerService()
/var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 161: call_user_func_array(Array, Array)
/var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 91: OC\AppFramework\Http\Dispatcher->executeController(Object(OCA\User_SAML\Controller\SAMLController), 'assertionConsum...')
/var/www/html/nextcloud/lib/private/AppFramework/App.php - line 115: OC\AppFramework\Http\Dispatcher->dispatch(Object(OCA\User_SAML\Controller\SAMLController), 'assertionConsum...')
/var/www/html/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php - line 47: OC\AppFramework\App main('OCA\\User_SAML\\C...', 'assertionConsum...', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)
[internal function] OC\AppFramework\Routing\RouteActionHandler->__invoke(Array)
/var/www/html/nextcloud/lib/private/Route/Router.php - line …
Run Code Online (Sandbox Code Playgroud)

saml single-sign-on keycloak nextcloud

4
推荐指数
1
解决办法
1788
查看次数