为了解决您的问题“有没有办法找出导致问题的原因?”,我重复了您帖子中建议的 SAML 2.0 身份验证步骤。
以下回复和答案将帮助您“找出导致问题的原因”。
(1) 引用您的帖子“我在 okta 上创建了一个 SAML 2.0 应用程序并完成了所有配置。然后我尝试通过重定向到 okta idp 从我的应用程序进行授权 ->
http://www.okta.com/(okta 创建令牌)?SAMLRequest=(编码的 saml xml)"
回应:
(I) 我已经在 okta 上创建了一个 SAML 2.0 SP 应用程序,并且已经完成了所有的配置。
(II) 然后我尝试通过我的 SAML SP 应用程序进行授权,方法是像您一样重定向到 okta idp。
(III) 提交本地 Okta 用户帐户的用户名/密码(例如 john.doe@example.com)以进行 SAML 身份验证。
(2) 引用您的帖子“重定向返回 404。当我转到我的管理 okta 控制台时,我没有看到任何失败尝试的日志,我想这是有道理的,因为它返回 404,但我不知道如何找出导致 404 的原因。”
回应:
(I) 在我的实验中,重定向返回以下错误消息而不是 404 错误。
Sorry, you can't access SAML 2.0 SP demo because you are not assigned this app in Okta.
If you're wondering why this is happening, please contact your administrator.
If it's any consolation, we can take you to your Okta home page.
(II)然后按照您的帖子的建议“我去我的管理员 okta 控制台”,
导航到报告 > 系统日志,我看到了下面的日志。
Event Info Targets
User attempted unauthorized access to app SAML 2.0 SP demo (AppInstance)
FAILURE :
(3) 引用您的问题“有没有办法找出导致问题的原因?”
回答:
我总结了您的 SAML 身份验证失败的四 (4) 个潜在根本原因。排名第一的潜在根本原因是您将错误的 okta IdP 元数据文件上传到您的 SAML 2.0 SP 应用服务器(请参阅下面的详细说明)。
(I) 潜在问题 #1:
我的问题的根本原因是我的本地 okta 用户帐户未分配来访问此 SAML 2.0 应用程序。
分辨率:
(a) 导航到应用程序 > SAML 2.0 应用程序,然后单击分配 > 分配给人员,
(b) 在弹出的对话框中,选择本地 Okta 用户帐户(例如 John Doe (john.doe@example.com)),单击分配,单击保存并返回,然后单击完成。
(c) 再次重复上述 SAML 2.0 身份验证步骤,我被重定向回来并成功登录到 SAML 2.0 App。
(II) 潜在问题 #2:
此问题的三 (3) 个潜在根本原因是
(a) 您没有在 okta 上填写您的 SAML 2.0 SP 应用的所有正确 SAML SP 信息。
(b) 或者您没有将 okta IdP 元数据文件上传到您的 SAML 2.0 SP 应用服务器
(c) 或者您将错误的 okta IdP 元数据文件上传到您的 SAML 2.0 SP 应用服务器(这是导致 404 失败的最高概率,因为与大多数 SAML IdP 不同,它们只为所有 SAML 创建一个 IdP 元数据文件SP 应用,可以为不同的 SAML SP 应用创建不同的 IdP 元数据文件)。
分辨率:
关于根本原因 (II.a):当您创建新的 SAML 2.0 应用程序时,您需要确保以下 SAML SP 信息应与您的 SAML 2.0 SP 应用程序的 SAML SP 元数据完全相同。
Single sign on URL should come from your SAML SP metadata, e.g.,
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://your-saml-sp-app-URL/SAML2/POST" index="1"/>
Audience URI (SP Entity ID) should also come from your SAML SP metadata, e.g.,
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" ID="_random-string" entityID="https://your-saml-sp-app-URL/SAML2/Metadata">)
okta 上 SAML 2.0 SP 应用的示例 SAML 设置
导航到应用程序 > 您的 SAML 2.0 应用程序 > 常规 > SAML 设置
Single Sign On URL https://your-saml-sp-app-URL/SAML2/POST (i.e., your SAML SP AssertionConsumerService)
Recipient URL https://your-saml-sp-app-URL/SAML2/POST (i.e., your SAML SP AssertionConsumerService)
Destination URL https://your-saml-sp-app-URL/SAML2/POST (i.e., your SAML SP AssertionConsumerService)
Audience Restriction https://your-saml-sp-app-URL/SAML2/Metadata (i.e., your SAML SP entity ID)
Default Relay State
Name ID Format Unspecified
Response Signed
Assertion Signature Signed
Signature Algorithm RSA_SHA256
Digest Algorithm SHA256
Assertion Encryption Unencrypted
SAML Single Logout Disabled
authnContextClassRef PasswordProtectedTransport
Honor Force Authentication Yes
SAML Issuer ID http://www.okta.com/${org.externalKey}
关于根本原因 (II.b) 和 (II.c):您需要将正确的 okta IdP 元数据上传到您的 SAML 2.0 SP 应用服务器。
请注意,okta 会为您的不同 SAML 2.0 SP 应用程序创建不同的 okta IdP 元数据文件。
导航到应用程序 > 您的 SAML 2.0 应用程序 > 登录
Identity Provider metadata is available if this application supports dynamic configuration.
单击身份提供者元数据以下载 SAML 2.0 SP 应用的 okta IdP 元数据。
登录到您的 SAML 2.0 SP 应用,将 okta IdP 元数据上传到您的 SAML 2.0 SP 应用,然后完成配置以将 okta IdP 信息存储在您的 SAML 2.0 SP 应用服务器上。