我已经在okta上创建了一个SAML 2.0应用程序,并且已经完成了所有的配置。然后,我尝试通过重定向到okta idp ->,从我的应用程序进行授权
http://www.okta.com/(okta created token)?SAMLRequest=(encoded saml xml)
重定向返回404。当我进入我的管理员okta控制台时,我没有看到任何失败尝试的日志,我想这是有意义的,因为它返回了404,但我不知道如何找出是什么导致了404。
有没有办法找出问题的起因?
发布于 2019-04-15 21:40:02
安装SAML跟踪程序浏览器扩展,然后重试以确认SAML响应是否正确解码。
发布于 2019-04-16 07:55:05
为了回答您的问题“有没有办法找出导致问题的原因?”,我重复了您的帖子中建议的SAML2.0身份验证步骤。
以下响应和答案将帮助您“找出导致问题的原因”。
(1)引用你的帖子“我已经在okta上创建了一个SAML2.0应用程序,并且已经完成了所有配置。然后,我尝试通过重定向到okta idp -> http://www.okta.com/(okta?SAMLRequest=(编码的SAML xml)来从我的应用程序进行授权。”
响应:
(I)我已经在okta上创建了一个SAML 2.0 SP App,并且像您一样完成了所有配置。
(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控制台”,导航到Reports > System Log,我看到了下面的日志。
Event Info Targets
User attempted unauthorized access to app SAML 2.0 SP demo (AppInstance)
FAILURE :
(3)引用你的问题“有没有办法找出是什么导致了这个问题?”
应答:
我总结了导致SAML身份验证失败的四(4)个潜在根本原因。首要的潜在根本原因是您上传了错误的okta IdP元数据文件到您的SAML2.0SP应用服务器(参见下面的详细描述)。
(I) 潜在问题#1:
我的问题的根本原因是我的本地okta用户帐户没有被分配来访问这个SAML 2.0应用程序。
解析:
(a)导航到Applications > SAML 2.0 App,然后单击Assign > Assign to People,
(b)在弹出的对话框中,选择本地Okta用户账号(例如John Doe (john.doe@example.com)),点击Assign,点击Save and Back,然后点击Done。
(c)再次重复上述SAML 2.0身份验证步骤,我被重定向回并成功登录到SAML 2.0 App。
(II) 潜在问题#2:
此问题的三(3)个潜在根本原因是
(a)您没有在okta上填写您的SAML 2.0 SP应用程序的所有正确SAML SP信息。
(b)或者您没有将okta IdP元数据文件上传到您的SAML2.0 SP应用程序服务器
(c)或者您上传了错误的okta SAML元数据文件到您的SAML2.0SP应用程序服务器(这是导致您的404失败的最高概率,因为不像大多数SAML为所有IdP SP应用程序创建一个SAML元数据文件,okta为不同的SAML应用程序创建不同的IdP元数据文件)。
解析
关于根本原因(i.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}
关于根本原因( IdP .b)和(IdP.c):您需要将正确的okta IdP元数据上传到您的SAML2.0SP应用服务器中。请注意,okta为您的不同SAML2.0SP应用程序创建不同的okta IdP元数据文件。
导航到应用程序>您的SAML 2.0应用程序>登录
Identity Provider metadata is available if this application supports dynamic configuration.
单击身份提供程序元数据下载适用于您的SAML2.0SP应用程序的okta IdP元数据。
登录到您的SAML2.0 SP应用程序,将okta IdP元数据上传到您的SAML2.0 SP应用程序,然后完成配置以将okta IdP信息存储在您的SAML2.0 SP应用程序服务器上。
https://stackoverflow.com/questions/55640725
复制相似问题