ロードバランサで SSL を終端し,バックエンドの apache サーバに mahara を構築する場合, SAML 認証すると以下のようなエラーが出て認証できない.
Destination in response doesn't match the current URL. Destination is "https://mahara.example.com/mahara/auth/saml/sp/module.php/saml/sp/saml2-acs.php/default-sp", current URL is "http://mahara.example.com:443/mahara/auth/saml/sp/module.php/saml/sp/saml2-acs.php/default-sp"., referer: https://idp.mahara.example.com/idp/profile/SAML2/Redirect/SSO?execution=e5s1
対応としてソースを以下のように修正した.
mahara/auth/saml/config/config.php の編集
*** config.php.org 2018-10-25 10:28:16.000000000 +0900 --- config.php 2018-12-21 13:24:59.998987521 +0900 *************** *** 94,99 **** --- 94,102 ---- * See the user manual for more details. */ 'baseurlpath' => get_config('wwwroot') . 'auth/saml/sp/', + 'application' => array( + 'baseURL' => get_config('wwwroot'), + ), 'certdir' => 'cert/', 'loggingdir' => '/tmp/', 'datadir' => 'data/',
ページ下の「ヘルプ」リンクで日本語版のマニュアルへリンクする. (日本語版マニュアルが存在することが前提9
lib/manualhelp.php を編集.
*** manualhelp.php.org 2018-10-25 10:28:16.000000000 +0900 --- manualhelp.php 2019-04-19 10:58:21.772044243 +0900 *************** *** 101,107 **** */ function _get_manual_language() { $user_lang = current_language(); ! $manual_langs = array("de", "en", "fr", "nl"); foreach ($manual_langs as $lang) { if (strpos($user_lang, $lang) === 0) { return $lang; --- 101,107 ---- */ function _get_manual_language() { $user_lang = current_language(); ! $manual_langs = array("de", "en", "fr", "nl","ja"); foreach ($manual_langs as $lang) { if (strpos($user_lang, $lang) === 0) { return $lang;