标签: single-sign-on

带有 LDAP 的 CAS 与仅 LDAP 身份验证

我们有几个定制开发的在线应用程序以及开源应用程序,例如 KOHA、moodle 和 bugzilla。

我们正在尝试使用单点登录服务集成他们的身份验证。到目前为止,我们已经尝试过 JASIG CAS,这似乎解决了我们的大部分问题。

不过,我们还希望将身份验证链接到 LDAP 兼容的目录服务。

我的问题是:
1. 为什么我们需要将 CAS 与 LDAP 结合使用?
2. 仅 LDAP 服务可以工作吗?(我们所有的应用程序要么直接支持 LDAP,要么可以修改为与 LDAP 一起使用)
3. 假设 CAS 运行在 MySQL 数据库上,LDAP 兼容系统(例如 Active Directory)是否可以联系 CAS 服务器进行登录?

authentication cas ldap single-sign-on

2
推荐指数
1
解决办法
2851
查看次数

从 SSO kerberos 注销

我的 OSX 应用程序需要基于 Kerberos 协议进行身份验证。对于登录,我通过加载授权 URL 请求来使用 WebView(以及 MAC OSX > 10.9 的 WKWebView)。

登录按预期工作,但它保持登录状态,直到我从计算机注销或终止我的应用程序。这意味着下次我加载授权 URL 请求时,我会自动登录,而不会提示插入我的用户名和密码。

在加载授权 URL 之前,我从 [NSHTTPCookieStorage sharedHTTPCookieStorage] 中删除 cookie。

我怎样才能退出?

macos kerberos single-sign-on

2
推荐指数
1
解决办法
5120
查看次数

使用两个 URL 使用 Azure AD 进行单点登录

假设我有 2 个 url 指向一个网站,只需使用站点绑定,例如:

productname1.company.com
productname2.company.com
Run Code Online (Sandbox Code Playgroud)

我们的 Web 应用程序单点登录到 Azure Active Directory,并且在 Azure 应用程序配置中,我放置了:

productname1.company.com
Run Code Online (Sandbox Code Playgroud)

对于登录 URL 和回复 URL:

在此输入图像描述

如果用户来到productname1.company.com,Azure 单点登录身份验证工作正常。

但如果用户来了productname2.company.com,它根本不起作用并重定向到 的登录页面productname1.company.com

如何配置才能使其与productname2.company.comAzure AD 一起使用,我正在使用 OWIN OpenIdConnect 进行单点登录。

asp.net-mvc single-sign-on owin azure-active-directory openid-connect

2
推荐指数
1
解决办法
1797
查看次数

使用nginx容器作为反向代理时的原始url

我有一个 Web 应用程序部署为docker 容器。我还设置了一个nginx容器(使用dnsmasq解析器)作为 Web 应用程序前面的反向代理,它的 80 端口映射到主机。我的应用程序使用 SSO 身份验证。

当我使用身份提供商登录时,回调 url 似乎是我的 Web 应用程序的内部域名,而不是主机上的正确 url。

我的 Nginx 配置:

server {
    resolver 127.0.0.1 valid=1s ipv6=off;
    set $upstream_endpoint http://myapp:5000;
    listen 80;

    location / {
      proxy_pass $upstream_endpoint;
    }
}
Run Code Online (Sandbox Code Playgroud)

sso 尝试重定向到的回调 URL 是http://myapp:5000而不是http://myhost.com:80,这显然会失败,因为它是内部的。

有人可以帮我找到如何正确设置 nginx 吗?

nginx single-sign-on docker

2
推荐指数
1
解决办法
522
查看次数

如何在 SSO 中共享 JWT 密钥

我想知道如何在 SSO 和客户端之间共享 JWT 的密钥?每当创建令牌时,密钥是否应该随机生成?

php security http single-sign-on jwt

2
推荐指数
1
解决办法
1050
查看次数

如何使用 keycloak 强制每个客户端登录(最佳实践?)

我们目前正在实施 keycloak,但我们面临一个问题,我们不确定解决该问题的最佳方法是什么\xe2\x80\x99。

\n\n

我们有不同的网络应用程序使用 sso,并且 \xe2\x80\x99s 工作正常。我们遇到的问题是,当我们在一个 Web 应用程序中使用 sso 登录,然后在另一个 Web 应用程序中执行相同的操作时。

\n\n

最初,第二个 Web 应用程序不知道哪个用户即将到来(并且不需要登录即可使用它\xe2\x80\x99)。当单击 \xe2\x80\x9clogin\xe2\x80\x9d 时,它会自动登录用户(通过重定向到 keycloak 并自动在其他 Web 应用程序中记录已登录的用户)。第二次日志记录对用户来说是透明的,因为重定向到 keycloak 的速度非常快并且不明显。这种行为对用户来说不太友好。

\n\n

问题是:考虑到第二个 web 应用程序可以\xe2\x80\x99t 预先知道哪个用户正在访问该站点(除非主动重定向到 keycloak),是否可以强制用户始终登录特定的 keycloak 客户端?我的意思是实际上向访问者询问用户/密码,即使 keycloak 已经从其他 keycloak 客户端知道了它们。

\n\n

提前致谢!

\n

authentication logging single-sign-on keycloak

2
推荐指数
1
解决办法
9888
查看次数

如何在iframe上使用Auth0登录

我刚刚实现了简单的基于 Angular 的应用程序,并使用 Auth0 按钮登录。当我直接在浏览器上打开它时效果很好。我可以登录成功。我的目标是使用 iframe(作为一种小部件)将我的应用程序嵌入到另一个网页中。

\n\n
<div class="css"><iframe src="https://myapp.com"></iframe></div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

登录逻辑如下

\n\n
login(redirectPath: string = \'/\') {\n    this.auth0Client$.subscribe((client: Auth0Client) => {\n      client.loginWithRedirect({\n        redirect_uri: `https://some.now.sh`,\n        appState: {target: redirectPath},\n      });\n    });\n  }\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是在登录过程中我收到错误

\n\n
\n

系统中可能存在配置错误或服务中断。\n 我们会自动跟踪这些错误,但如果问题仍然存在,请随时与我们联系。请再试一次。

\n\n

invalid_request :您可能在登录期间按了后退按钮、刷新了\n、打开了太多登录对话框,或者 cookie 存在一些问题,因为我们无法\xe2\x80\x99 找到您的会话。尝试从应用程序再次登录,如果问题仍然存在,请联系管理员。

\n
\n\n

在网络选项卡上我可以看到

\n\n
\n

https://mycustomname.eu.auth0.com/authorize?xxxx

\n
\n\n

得到 302 的位置信息

\n\n
\n

/u/login?state=g6Fo2xxxxxxx

\n
\n\n

进而

\n\n
\n

https://mycustomname.eu.auth0.com//u/login?state=g6Fo2xxxxxxx

\n
\n\n

返回 400 HTTP 代码。

\n\n

可能出什么问题了?它\xe2\x80\x99s 不可能在 iframe 上使用 Auth0 吗?

\n

single-sign-on auth0 angular

2
推荐指数
1
解决办法
6536
查看次数

如何通过在laravel中传递参数来获取内容类型application/x-www-form-urlencoded的响应

我已经在 Laravel https://sso/{custom_path}/token 中使用 Api 进行单点登录选项,就像使用 jwt 创建的 Api 一样。\n最后在 Web 应用程序中将标头中的访问令牌和内容类型传递给 Api 调用使用http客户端guzzle。\n使用内容类型application/x-www-form-urlencoded,并在form_params中使用参数。\n但作为响应,我缺少grant_type。当我在 form_parms 数组中传递 grant_type 时。有没有其他方法可以解决这个问题。任何有价值的回应都会被考虑。

\n

代码:

\n
$uri = $this->userTokenAuthencticateUrl();\n        $token = session('token')->access_token;\n        $params['header'] = [\n            "Content-Type: application/x-www-form-urlencoded",\n            "Authorization: Bearer $token"\n            ];\n        $params['form_params'] = array(\n                'grant_type' => 'xxxxx',\n                'response_include_resource_name' => 'xxx',\n                'audience' => 'xxxx', \n                'permission' => 'xxxxxx',\n            );\n            $response = Http::post($uri, $params);\n            dd($response->json());\n
Run Code Online (Sandbox Code Playgroud)\n

回应:

\n
array:2 [\xe2\x96\xbc\n  "error" => "invalid_request"\n  "error_description" => "Missing form parameter: grant_type"\n]\n
Run Code Online (Sandbox Code Playgroud)\n

php api single-sign-on laravel guzzle

2
推荐指数
1
解决办法
7063
查看次数

自定义 SAML 应用程序出现 AWS SSO“无访问错误”

我正在尝试使用 AWS SSO 设置自定义 SAML 2.0 应用程序。但是,我从网络选项卡中收到以下错误:

Status code 403
{"message":"No access","__type":"com.amazonaws.switchboard.portal#ForbiddenException"}
Run Code Online (Sandbox Code Playgroud)

UI 中显示的是这个:

在此输入图像描述

可能导致此错误的两个注意事项:

  1. 我的 SP 测试服务器正在本地主机中运行
  2. 我正在使用自签名证书:
openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=localhost:9000"
Run Code Online (Sandbox Code Playgroud)

如果这仍然没有告诉您任何信息,那么我将在下面描述更多内容。


更多细节

这是来自我正在使用的库的服务器代码

Status code 403
{"message":"No access","__type":"com.amazonaws.switchboard.portal#ForbiddenException"}
Run Code Online (Sandbox Code Playgroud)

该服务器公开一个端点,IDP 可以在其中获取我自动生成的元数据。

curl -o metadata.xml http://localhost:9000/saml/metadata
Run Code Online (Sandbox Code Playgroud)

这些是我的元数据:

<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2021-09-13T03:37:23.951Z" entityID="http://localhost:9000/saml/metadata">
  <SPSSODescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2021-09-13T03:37:23.951204335Z" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" AuthnRequestsSigned="false" WantAssertionsSigned="true">
    <KeyDescriptor use="encryption">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <X509Data>
          <X509Certificate>xxxxxxxxxx</X509Certificate>
        </X509Data>
      </KeyInfo>
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"></EncryptionMethod>
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"></EncryptionMethod>
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"></EncryptionMethod>
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"></EncryptionMethod>
    </KeyDescriptor>
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://localhost:9000/saml/slo" ResponseLocation="http://localhost:9000/saml/slo"></SingleLogoutService>
    <AssertionConsumerService …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services single-sign-on saml-2.0

2
推荐指数
1
解决办法
8069
查看次数

我应该如何正确地将社交媒体SSO与我的自定义登录服务集成?

我正在尝试将移动应用程序的现有登录系统与一些社交媒体登录解决方案集成.我成功地将Facebook和谷歌+登录与我的应用程序集成,我达到了用户登录的地步,我可以获取他们的社交信息.

但是现在我想知道哪个是最好的方法,以便将决定使用社交媒体帐户的用户与我的本机登录系统集成.我应该使用他们的电子邮件帐户登录,也许在服务器端生成密码?或者也许使用oauth令牌而不是密码?

我需要跟踪我的用户,甚至那些没有正式填写注册表的用户.那么我应该放置什么而不是电子邮件+密码?

android facebook single-sign-on google-plus

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