You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2022-07-21 21:37:40

warley.lago
Member
Registered: 2020-05-15
Posts: 4

imap_open(): Couldn't open stream {outlook.office365.com:993...

Desde ontem as 16H o nosso GLPI na versão GLPI 9.4.3 parou de buscar os e-mails no Imap. Não foi feito nenhuma atualização ou manutenção no sistema.

Alguém sabe o que possa estar ocorrendo?

Erro completo:
[2022-07-21 16:27:02] glpiphplog.ERROR: Toolbox::userErrorHandlerNormal() in /var/www/html/glpi/inc/toolbox.class.php line 659
  *** PHP Warning(2): imap_open(): Couldn't open stream {outlook.office365.com:993/imap/ssl/debug}
  Backtrace :
  :
  inc/mailcollector.class.php:1228                   imap_open()
  inc/mailcollector.class.php:657                    MailCollector->connect()
  inc/mailcollector.class.php:1794                   MailCollector->collect()
  :                                                  MailCollector::cronMailgate()
  inc/crontask.class.php:829                         call_user_func()
  front/cron.php:83                                  CronTask::launch()
  {"user":"@maria.implanta.local","mem_usage":"0.611\", 11.70Mio)"}

Desde Já agradeço o apoio.

Offline

#2 2022-07-21 22:05:53

jose.silva
Member
Registered: 2021-07-05
Posts: 6

Re: imap_open(): Couldn't open stream {outlook.office365.com:993...

Amigo, boa tarde. Mesmo problema aqui o meu esta na versao 9.4.5.

Já tentei de todas as formas, alguns usuarios até estavam autenticando ontem, mas hoje agravou ainda mais, mias contas nao estao entrando. Pesquisando um pouco acredito que seja algo na Microsoft. La no painel da azure esta dando essa msg:

Data   
20/07/2022 18:59:53
ID da Solicitação   
9afa6920-13a5-40fe-89de-ba0a3053e600
ID de Correlação   
40c4d02c-4d2a-4b33-b715-257d5dd95b93
Requisito de autenticação   
Autenticação de fator único
Status   
Falha
Avaliação contínua de acesso   
Não
Código de erro de logon   
50133
Razão da falha   
The session is not valid due to password expiration or recent password change.
Detalhes Adicionais   
Expected - auth codes, refresh tokens, and sessions expire over time or are revoked by the user or an admin. The app will request a new login from the user.


Já busquei ajuda aqui, abri uma pergunta no forum e nada. Eu vi um artigo falando que em setembro a Microsft vai exigir acesso combinado para poder validar os logins, acho que isso esteja impactando. Eu pesquisei algo relacionado ao Google que tem uma função de habilitar o uso em aplicações menos seguras (less secure app access), porem na Microsoft nao tem nada dessa opção.

docs .microsoft. com/ pt-br / azure / active-directory / authentication / concept-registration-mfa-sspr-combined

Offline

#3 2022-07-21 22:42:17

jose.silva
Member
Registered: 2021-07-05
Posts: 6

Re: imap_open(): Couldn't open stream {outlook.office365.com:993...

Habilitar o suporte para o TLS 1.2 em seu ambiente para a substituição do Azure AD TLS 1.1 e 1.0
Artigo
21/07/2022
14 minutos para o fim da leitura
2 colaboradores


Para melhorar a postura de segurança do locatário e permanecer em conformidade com os padrões da indústria, o Microsoft Azure Active Directory (Azure AD) em breve interromperá o suporte aos seguintes protocolos e codificações TLS (Transport Layer Security):

TLS 1.1
TLS 1.0
Pacote de codificação 3DES (TLS_RSA_WITH_3DES_EDE_CBC_SHA)
Como essa alteração pode afetar sua organização
Seus aplicativos se comunicam ou se autenticam com o Azure Active Directory? Em seguida, esses aplicativos podem não funcionar conforme o esperado se não conseguirem usar o TLS 1.2 para comunicar. Esta situação inclui:

Azure AD Connect
Azure AD PowerShell
Conectores de proxy de aplicativo do Azure AD
Agentes PTA
Navegadores herdados
Aplicativos que são integrados com o Azure AD
Por que essa alteração está sendo feita
Esses protocolos e codificações estão sendo preteridos pelos seguintes motivos:

Para seguir os padrões de conformidade mais recentes do Programa Federal de Gerenciamento de Riscos e Autorizações (FedRAMP).
Para melhorar a segurança quando os usuários interagem com nossos serviços de nuvem.
Os serviços estão sendo preteridos nas seguintes datas:

TLS 1.0, 1.1 e Pacote de codificação 3DES em instâncias do governo dos EUA a partir de 31 de março de 2021.
TLS 1.0, 1.1 e Pacote de codificação 3DES em instâncias públicas a partir de 31 de janeiro de 2022. (Esta data foi adiada de 30 de junho de 2021 para 31 de janeiro de 2022, para dar aos administradores mais tempo para remover a dependência de protocolos TLS herdados e codificações (TLS 1.0,1.1 e 3DES).)
Habilitar o suporte para o TLS 1.2 em seu ambiente
Como manter uma conexão segura com Azure Active Directory (Azure AD) e Microsoft 365 serviços? Você habilita seus aplicativos cliente e o sistema operacional de cliente e servidor (OS) para TLS 1.2 e pacote de codificação modernos.

Diretrizes para habilitar o TLS 1.2 em clientes
Atualize o Windows e o TLS padrão que você usa para "WinHTTP".
Identifique e reduza a sua dependência dos aplicativos cliente e sistemas operacionais que não suportam o TLS 1.2.
Habilite o TLS 1.2 para aplicativos e serviços que comunicam com o Azure AD.
Atualize e configure sua instalação .NET Framework para dar suporte ao TLS 1.2.
Certifique-se de que os aplicativos e o PowerShell (que usam o Microsoft Graph) e os scripts do Azure AD PowerShell sejam hospedados e executados em uma plataforma que oferece suporte ao TLS 1.2.
Certifique-se de que o navegador da Web tenha as atualizações mais recentes. Recomendamos que você use o novo navegador Microsoft Edge (com base no Chromium). Para obter mais informações, consulte as Notas de versão do Microsoft Edge para o Canal Estável.
Certifique-se de que o proxy da Web oferece suporte ao TLS 1.2. Para obter mais informações sobre como atualizar um proxy da Web, verifique com o fornecedor da sua solução de proxy da Web.

Offline

#4 2022-07-25 19:18:01

jose.silva
Member
Registered: 2021-07-05
Posts: 6

Re: imap_open(): Couldn't open stream {outlook.office365.com:993...

Pessoal, aqui mesmo no forum em Ingles responderam que a Microsoft removeu o suporte a autenticacao IMAP basica e agora tem que autenticar com um plugin. segue

https: //glpi-plugins.readthedocs.io/ en/ latest/oauthimap/index.html

Last edited by jose.silva (2022-07-25 19:18:26)

Offline

#5 2022-08-03 21:31:15

jose.silva
Member
Registered: 2021-07-05
Posts: 6

Re: imap_open(): Couldn't open stream {outlook.office365.com:993...

Boa tarde, vou tentar ser breve na solução do problema relacionado a usar o Microsoft 365 para fazer login na plataforma para os usuarios abrirem os chamados. A solução eu encontrei no github, um plugin gratuito.

Minha versão estava na 9.4.5 eu atualizei para a 10.0.2 porem o problema do IMAP autenticar ainda estava presente, eu fiz o download desse plugin

Para esse procedimento funcionar o site tem que estar rodando em HTTPS, então leia esse aritgo para colocar o APACHE2 para trabalhar com SSL.

https : // techexpert.tips /pt-br/ apache-pt-br/ habilitar-https-no-apache/

Depois que estiver com o Apache com HTTPS funcionando, baixe o plugin SSO.

https : //github.com/edgardmessias/ glpi-singlesignon/releases

Instalei na pasta <ROOT-GLPI>/html/glpi/plugins/

Fui na Aba Plug-ins e instalei e habilitei o plugin.

Volte para o GLPI > Admnistração > Login Unico

Essa tela é onde vai receber os dados da Microsoft Azure.

copie o campo URL de retorno, esse dado voce vai precisar para lançar na aplicação no Azure.

https : // SEUSITE /glpi/plugins/singlesignon/front/callback.php/provider/1

Va no portal Azure da Microsoft e vamos criar uma aplicação.

Isso pode ajudar:
https : // docs.microsoft.com/pt-br/ azure/app-service/ configure-authentication-provider-aad

Eu fui em https : // portal.azure.com/

Clica em Azure Active Directory > Registro de Aplicativos > Novo Registro

Informe um nome para a sua aplicação e seleciona a opção

"Contas em qualquer diretório organizacional (Qualquer diretório do Azure AD – Multilocatário) e contas pessoais da Microsoft (por exemplo, Skype, Xbox)"

Mais abaixo, clique em URI de Redirecionamento. Coloque a opção WEB e cole o URL copiado acima.

URI de redirecionamento (opcional) = WEB = https: // SEUSITE /glpi/plugins/singlesignon/front/callback.php/provider/1

Clique em registro e avance.

Em visão geral dentro do aplicativo, clique em Credenciais de cliente :0 certificado, 0 segredo

Clique em novo segredo coloque 24 meses de duração e salve com o nome que preferir.

ATENÇÃO!

Nessa tela vai exibir o segredo no campo VALOR apenas essa unica vez, copie essa informação e volte na aba do GLPI > Configurações > Logon Unico e cole o valor no campo Segredo.

SEUSITE/glpi/plugins/singlesignon/front/provider.form.php

Volte na tela da Azure na guia Visão Geral e copie o campo ID do aplicativo (cliente) copie esse codigo e cole na Aba Logon Unico no campo ID de Cliente

E os demais dados coloque conforme abaixo:

Tipo SSO > Azure
Ativo     > Sim
PopupAuth > Não
IsDefault > Não
SplitDomain > Não
AuthorizedDomains > seudominio.com.br

Clique em salvar e faça o teste, clicando em Testar Logon Unico. Vai abrir um poup retornando uma informação sobre o email que vc deve inserir, a tela de login e senha da Microsoft 365, apos inserir vai te retornar com os dados desse email.

### BEGIN ###

getAccessToken:
Array

Feito isso o proximo passo é ir no usuario cadastrado (caso tenha) e mudar o metodo de autenticação para Banco de dados interno do GLPI (Eu fiz isso para todos os usuarios que tenho aqui).

Pegue o Filezilla e acesse o seu servidor e va até a pasta /glpi/templates/pages

Faça a copia de segurança do arquivo login.html.twig e edite o original e cole esses dados aqui:


{#
# ---------------------------------------------------------------------
#ARQUIVO MODIFICADO PARA EXIBIR APENAS O BOTAO DE LOGIN DO MICROSOFT 365
# GLPI - Gestionnaire Libre de Parc Informatique
#
#
#
# @copyright 2015-2022 Teclib' and contributors.
# @copyright 2003-2014 by the INDEPNET Development Team.
# @licence   hl
#
# ---------------------------------------------------------------------
#
# LICENSE
#
# This file is part of GLPI.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see .
#
# ---------------------------------------------------------------------
#}

{% extends 'layout/page_card_notlogged.html.twig' %}

{% block content_block %}
   <form action="{{ path('front/login.php') }}" method="post" autocomplete="off"  data-submit-once>
      <input type="hidden" name="noAUTO" value="{{ noAuto }}" />
      <input type="hidden" name="redirect" value="{{ redirect }}" />
      <input type="hidden" name="_glpi_csrf_token" value="{{ csrf_token() }}" />

      <div class="row justify-content-center">
         <div class="col-md-5">

           

            {% if constant('GLPI_DEMO_MODE') %}
               <div class="mb-3">
                  <label class="form-label">{{ __('Language') }}</label>
                  {{ languages_dropdown|raw }}
               </div>
            {% endif %}

            {% if config('display_login_source') %}
               <div class="mb-3">
                  <label class="form-label">{{ __('Login source') }}</label>
                  {{ auth_dropdown_login|raw }}
               </div>
            {% endif %}

            {% if config('login_remember_time') %}
               
            {% endif %}

            <div class="singlesignon-box"><span class="login_input"><a href="/glpi/plugins/singlesignon/front/callback.php/provider/1" class="singlesignon vsubmit oauth-login ">Entrar com seu DOMINIO</a></span><span class="login_input"></span></div>      <style>
         #display-login .singlesignon-box span {
            display: inline-block;
            margin: 5px;
         }

         #display-login .singlesignon-box .old-login {
            display: none;
         }

         #boxlogin .singlesignon-box span {
            display: block;
         }

         #boxlogin .singlesignon-box .vsubmit {
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 1.3em !important;
            text-align: center;
            box-sizing: border-box;
         }
         #boxlogin .singlesignon-box .vsubmit img {

            vertical-align: sub;
         }
      </style>
      <script type="text/javascript">
         $(document).ready(function() {

            // On click, open a popup
            $(document).on("click", ".singlesignon.oauth-login.popup", function(e) {
               e.preventDefault();

               var url = $(this).attr("href");
               var left = ($(window).width() / 2) - (600 / 2);
               var top = ($(window).height() / 2) - (800 / 2);
               var newWindow = window.open(url, "singlesignon", "width=600,height=800,left=" + left + ",top=" + top);
               if (window.focus) {
                  newWindow.focus();
               }
            });

            var $boxLogin = $('#boxlogin');
            var $form = $boxLogin.find('form');
            var $boxButtons = $('.singlesignon-box');

            // Move the buttons to before form
            $boxButtons.prependTo($boxLogin);
            $boxButtons.find('span').addClass('login_input');

            // Show old form
            $(document).on("click", ".singlesignon.old-login", function(e) {
               e.preventDefault();
               $boxButtons.slideToggle();
               $form.slideToggle(function() {
                  $('#login_name').focus();
               });
            });

            var $line = $('<p />', {
               class: 'login_input'
            }).prependTo($form);

            var $backLogin = $('<label />', {
               css: {
                  cursor: 'pointer'
               },
               text: "<< " + "Voltar",
            }).appendTo($line);

            $backLogin.on('click', function(e) {
               e.preventDefault();
               $boxButtons.slideToggle();
               $form.slideToggle();
            });

            $form.hide();
         });
      </script>
     
            </div>
               </div>
   </form>
               </div>

            {% if errors|length > 0 %}
               <hr />
               <div class="alert alert-danger" role="alert">
                  {{ errors }}
               </div>
            {% endif %}
         </div>

         {% if right_panel %}
            <div class="col-auto offset-md-1 p-2 text-center">
               {% if text_login|length > 0 %}
                  <div class="rich_text_container">
                     {{ text_login|safe_html }}
                  </div>
               {% endif %}

               {% if config('use_public_faq') %}
                  <hr />

                  <a class="btn btn-outline-secondary btn-icon" href="front/glpi.faq.php">
                     <i class="fas fa-question"></i>&nbsp;
                     {{ __('FAQ') }}
                  </a>
               {% endif %}

               <hr />

               
            </div>
         {% endif %}
      </div>
   </form>
{% endblock %}

{% block footer_block %}
   {{ copyright_message|raw }}
{% endblock %}

{% block javascript_block %}
<script type="text/javascript">
   $(function () {
$('#login_name').focus();
});
</script>
{% endblock %}


ATENÇÃO NESSE CAMPO

<div class="singlesignon-box"><span class="login_input"><a href="/glpi/plugins/singlesignon/front/callback.php/provider/1" class="singlesignon vsubmit oauth-login ">Entrar com seu DOMINIO</a></span><span class="login_input"></span></div>      <style>
         #display-login .singlesignon-box span {
            display: inline-block;
            margin: 5px;

na aba href se vc mudou o nome da pasta padrao glpi para outro nome vc altera e no nome do botão vocÊ altera tambem para Entrar com seu @dominio ou algo do tipo.

Salva e tente fazer o login. Caso tenha algum problema pegue o arquivo original e coloque no lugar desse, que com isso a tela de login volta ao default.

Com essa alteração vai ficar o botão apenas do plugin do SSO na tela de login, clique nele e tenta fazer login com sua conta do Microsoft 365. Dando certo apenas replicar o link novo do glpi que agora precisa estar rodando em HTTPS para a autenticação funcionar para os seus colaboradores.

Espero que tenha ajudado.

Last edited by jose.silva (2022-08-03 21:32:49)

Offline

Board footer

Powered by FluxBB