OIDC django-allauth - kid lookup использует x509 вместо jwk при обновлении до версии 65.11.0?
Недавно мы обновились до django-allauth[mfa, socialaccount]==65.11.0
, где мы используем OIDC-провайдера, который расширяет OAuth2Client
, и обнаружили, что одна из наших конфигураций SocialApplication
, связанная с регистрацией приложения Azure, перестала работать после удара.
До изменения версии аутентификация была выполнена успешно, но теперь мы получаем сообщение об ошибке allauth.socialaccount.providers.oauth2.client.OAuth2Error: Invalid 'kid'
.
Копнув немного глубже, мы видим, что именно jwtkit.py
в allauth/socialaccount/internal
вызывает lookup_kid_pem_x509_certificate(keys_data, kid)
, чтобы проверить, является ли kid допустимым, но переменные не имеют ожидаемой структуры и скорее подходят lookup_kid_jwk(keys_data, kid)
вместо этого.
Похоже, я не могу найти никакой документации или указателей на то, где и как я могу перенаправить вызов на использование lookup_kid_jwk(keys_data, kid)
, поскольку конфигурация такая же, как и до изменения версии. У кого-нибудь еще есть такая же проблема или какие-либо комментарии?
Конфигурация в SocialApplication.settings выглядит следующим образом
{"server_url": "https://login.microsoftonline.com/abc123/v2.0/.well-known/openid-configuration", "oauth_pkce_enabled": false}
Похоже, что эта проблема была обнаружена разработчиком и исправлена в версии 65.11.2 (большое спасибо, если вы это заметили!) https://github.com/pennersr/django-allauth/commit/5ef542b9004e808253f8cd9f2dbae0bb27365984