我的目标是集成一个使用 saml2 协议的 okta sso 应用程序。我的项目建立在 laravel 之上,我正在使用这个 package 来帮助我集成 saml2。根据文档,我实施了以下内容:
向 config/services.php 添加配置
'saml2' => [
'acs' => 'http://dashboard.test/okta-saml-callback',
'entityid' => 'http://www.okta.com/exk7qiudmbjsr*******',
'certificate' => 'MIIDqDCCApCgAwIBAgIGAYU+Ux31MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEG.......'
]
添加了提供者事件监听器
protected $listen = [
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
// ... other providers
\SocialiteProviders\Saml2\Saml2ExtendSocialite::class.'@handle',
],
];
添加了授权流程
Route::get('/okta-saml-login', function () {
return Socialite::driver('saml2')->redirect();
})->name('saml.login');
最后是回调 URL
Route::get('/okta-saml-callback', function () {
$user = Socialite::driver('saml2')->user();
dd($user);
});
配置后,当我点击“/okta-saml-login”路由时,它没有将我重定向到 SSO 的 okta 登录弹出页面,而是出现 404 未找到页面。这意味着授权 URL 有问题。现在我尝试搜索文档,但没有在任何地方找到任何关于配置 auth URL 的信息。
如果您收到 404,请确保您的回调 URL 设置正确。一些注意事项:
/auth/callback
,这是默认值。/okta-saml-callback
这样的自定义回调,然后像这样将它添加到你的配置中:'sp_acs' => 'okta-saml-callback',