Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【解決】「Nextcloud」(25):SSO設定してみたがプロビジョニングされていないエラーでログイン出来ない

SSOログイン出来るようになりました!

2024.6.19

解決したいこと

Nextcloudに、Microsoft Entra ID(旧AzureAD)を使ってSAML認証でシングルサインオンしたい。

  • Nextcloud 25.0.13 ※PHP7.4最終バージョン
    • SSO & SAML authentication 5.2.7

  • さくらのレンタル(ビジネス)PHP7.4

[設定の参考にした情報]
(SoftBank クラウドテクノロジーブログ様) Azure Active Directoryを使って NextcloudのSAML認証をしてみた ※ 構築手順付き
(Abillyz様) AzureADを利用してNextcloudのSAML認証をやってみる
(SingleID Document) NextcloudのSAML認証設定

発生している問題・エラー

NextcloudへSSOログイン操作後に次のエラーが発生してしまいログインできない。

アカウントがプロビジョニングされていない
アカウントにプロビジョニングされていないため、このサービスへのアクセスはできません。

(実際のログイン操作~エラー発生の様子)
エラーまでの様子.gif

自分で試したこと

  • NextcloudとAzureのSSOとSAML設定画面
    NextcloudとAzureのSSOとSAML設定画面.png

  • Microsoft Entra IDのサインインログは成功になっている
    Microsoft Entra IDのサインインログは成功になっている.png

以上です。
よろしくお願いします。

0

2Answer

NextcloudでLog Readerアプリをインストールしてログを確認したところ次のエラーが記録されていました。
Log Readerアプリで確認できたエラーログ.png

致命的なエラー user_saml Unable to extract public key
致命的なエラー user_saml invalid_response

エラー PHP Error: openssl_x509_export(): cannot get cert from parameter 1 at /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php#366

[PHP] エラー: Error: openssl_x509_export(): cannot get cert from parameter 1 at /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php#366 at <>
  1. <>
    OC\Log\ErrorHandler::onError(2, "openssl_x509_ex ... 1", "/home/ ... p", 366, ["-----BEGIN CER ... l])
  2. /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php line 366
    openssl_x509_export(false, null)
  3. /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/onelogin/php-saml/src/Saml2/Utils.php line 1501
    RobRichards\XMLSecLibs\XMLSecurityKey->loadKey("-----BEGIN CERT ... n", false, true)
  4. /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/onelogin/php-saml/src/Saml2/Response.php line 440
    OneLogin\Saml2\Utils::validateSign(["DOMDocument"], "-----BEGIN CERT ... n", "", "sha1", "/samlp:Response ... e", ["-----BEGIN CER ... "])
  5. /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/onelogin/php-saml/src/Saml2/Auth.php line 238
    OneLogin\Saml2\Response->isValid("ONELOGIN_6d9e19 ... b")
  6. /home/[サーバーのパス]/apps/user_saml/lib/Controller/SAMLController.php line 374
    OneLogin\Saml2\Auth->processResponse("ONELOGIN_6d9e19 ... b")
  7. /home/[サーバーのパス]/apps/user_saml/lib/Helper/TXmlHelper.php line 38
    OCA\User_SAML\Controller\SAMLController->OCA\User_SAML\Controller{closure}("*** sensitive parameters replaced ***")
  8. /home/[サーバーのパス]/apps/user_saml/lib/Controller/SAMLController.php line 375
    OCA\User_SAML\Controller\SAMLController->callWithXmlEntityLoader(["Closure"])
  9. /home/[サーバーのパス]/lib/private/AppFramework/Http/Dispatcher.php line 225
    OCA\User_SAML\Controller\SAMLController->assertionConsumerService()
  10. /home/[サーバーのパス]/lib/private/AppFramework/Http/Dispatcher.php line 133
    OC\AppFramework\Http\Dispatcher->executeController(["OCA\User_SAML ... "], "assertionConsumerService")
  11. /home/[サーバーのパス]/lib/private/AppFramework/App.php line 172
    OC\AppFramework\Http\Dispatcher->dispatch(["OCA\User_SAML ... "], "assertionConsumerService")
  12. /home/[サーバーのパス]/lib/private/Route/Router.php line 298
    OC\AppFramework\App::main("OCA\User_SAML\ ... r", "assertionConsumerService", ["OC\AppFramewo ... "], ["user_saml.SAML ... "])
  13. /home/[サーバーのパス]/lib/base.php line 1053
    OC\Route\Router->match("/apps/user_saml/saml/acs")
  14. /home/[サーバーのパス]/index.php line 36
    OC::handleRequest()

POST /2024/index.php/apps/user_saml/saml/acs
from xxx.xxx.xxx.xxx at 2024-06-17T04:43:58+00:00

エラー PHP Error: openssl_x509_read(): supplied parameter cannot be coerced into an X509 certificate! at /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php#365

[PHP] エラー: Error: openssl_x509_read(): supplied parameter cannot be coerced into an X509 certificate! at /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php#365 at <>
  1. <>
    OC\Log\ErrorHandler::onError(2, "openssl_x509_re ... !", "/home/... p", 365, ["-----BEGIN CER ... e])
  2. /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php line 365
    openssl_x509_read("-----BEGIN CERT ... n")
  3. /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/onelogin/php-saml/src/Saml2/Utils.php line 1501
    RobRichards\XMLSecLibs\XMLSecurityKey->loadKey("-----BEGIN CERT ... n", false, true)
  4. /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/onelogin/php-saml/src/Saml2/Response.php line 440
    OneLogin\Saml2\Utils::validateSign(["DOMDocument"], "-----BEGIN CERT ... n", "", "sha1", "/samlp:Response ... e", ["-----BEGIN CER ... "])
  5. /home/[サーバーのパス]/apps/user_saml/3rdparty/vendor/onelogin/php-saml/src/Saml2/Auth.php line 238
    OneLogin\Saml2\Response->isValid("ONELOGIN_6d9e19 ... b")
  6. /home/[サーバーのパス]/apps/user_saml/lib/Controller/SAMLController.php line 374
    OneLogin\Saml2\Auth->processResponse("ONELOGIN_6d9e19 ... b")
  7. /home/[サーバーのパス]/apps/user_saml/lib/Helper/TXmlHelper.php line 38
    OCA\User_SAML\Controller\SAMLController->OCA\User_SAML\Controller{closure}("*** sensitive parameters replaced ***")
  8. /home/[サーバーのパス]/apps/user_saml/lib/Controller/SAMLController.php line 375
    OCA\User_SAML\Controller\SAMLController->callWithXmlEntityLoader(["Closure"])
  9. /home/[サーバーのパス]/lib/private/AppFramework/Http/Dispatcher.php line 225
    OCA\User_SAML\Controller\SAMLController->assertionConsumerService()
  10. /home/[サーバーのパス]/lib/private/AppFramework/Http/Dispatcher.php line 133
    OC\AppFramework\Http\Dispatcher->executeController(["OCA\User_SAML ... "], "assertionConsumerService")
  11. /home/[サーバーのパス]/lib/private/AppFramework/App.php line 172
    OC\AppFramework\Http\Dispatcher->dispatch(["OCA\User_SAML ... "], "assertionConsumerService")
  12. /home/[サーバーのパス]/lib/private/Route/Router.php line 298
    OC\AppFramework\App::main("OCA\User_SAML\ ... r", "assertionConsumerService", ["OC\AppFramewo ... "], ["user_saml.SAML ... "])
  13. /home/[サーバーのパス]/lib/base.php line 1053
    OC\Route\Router->match("/apps/user_saml/saml/acs")
  14. /home/[サーバーのパス]/index.php line 36
    OC::handleRequest()

POST /2024/index.php/apps/user_saml/saml/acs
from xxx.xxx.xxx.xxx at 2024-06-17T04:43:58+00:00

0Like

Comments

  1. @hiro-matsumoto

    Questioner

    (STACK OVERFLOW) Log-in via SAML Fails on Nextcloud with "Account not provisioned"
     →こちらでは”「IdP のパブリック x.509 証明書」の内容を、Azure AD によって提供された証明書に置き換えます。”と言ってらっしゃいますね。(→これはやっているのですが。。)

    (Github:goauthentik/authentik) Account not provisioned - Nextcloud #3406
     →コピペする際のテキストエディタによる証明書文字列の置き換わり課題や、SAMLでは無くOIDCに代替する方法が語られていますね。

[解決]SSOログイン出来るようになりました!

GitHub:HOWTO Nextcloud SAML Login with AzureAD.md
 →また、こちらには、UIDの指定すべきURLや、

4. Under General

Attribute to map the UID to => http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

「一般」に、「UID をマップする属性として、このURLを入力したらできました!

後ほど、「Microsoft Entra ID(旧AzureAD)を使ってNextcloudのSAML認証(シングルサインオン)してみる」でまとめようと思います。

(2024.6.21 追伸)
まとめました!
Microsoft Entra ID(旧AzureAD)を使ってNextcloudのSAML認証(シングルサインオン)してみる

0Like

Your answer might help someone💌