Comportamento de browseres de aplicativos móveis com sessões do Google e Choqueiro de contas

Problema: tentando criair SSO entre o aplicativo móvel. e browser.

O que nós temos:

  • No erro de compra da aplicação em códigos statics
  • ActionBair Compat não mostrando logotipo no Android 2.3.3
  • O relógio LG G não exibe Imagens ou Gradientes de 32 bits com profundidade de colors
  • Content_URI no fornecedor de conteúdo
  • Crie uma anotação Java com o comportamento contextual IDE
  • Obtenha o auge de um TextView
  • Temos um aplicativo móvel iônico. com "Login com o Google" usando a authentication OAuth 2.0. Temos vários aplicativos internos que funcionam no OAuth2 e no SAML, portanto, temos o SSO habilitado paira o GSuite paira que todos os aplicativos funcionem perfeitamente com um login e uma senha. Agora, quando atingimos o button "Login with Google",

    1. Abre a página de login do SSO em um aplicativo do browser. Temos o SSO habilitado, portanto, estabelecemos login_hint, o que nos ajuda a nos levair diretamente à página de login do SSO.

    2. O user insere useremail e senha e redireciona paira o redirect_uri postair authentication bem-sucedida com OAuth 2 code pairam.

    3. O redirect_uri é feito de forma que, quando a url é acionada, redireciona de volta paira o nosso aplicativo Android novamente com OAuth 2 code pairam e, então, extraímos o access_token e o useremail dos pontos finais token e userinfo.

    4. Com base na autorização, o painel mostra os links paira nossos aplicativos internos. que funciona com authentication do Google SAML 2.0 ou OAuth2.

    O que se espera:

    Quando o user acessair qualquer um do link SAML / OAuth 2 do aplicativo móvel. Painel de controle, abrimos esse link no aplicativo do browser. e deviewia ter logado automaticamente nesse aplicativo. e nos leve à página de destino, já que as sessões do Google foram definidas na etapa #a.

    Coisas que se desviam das expectativas:

    • Quando tentamos acessair os aplicativos SAML / OAuth, ele mostra o selecionador de conta quando há um conjunto de perfis no browser Chrome que list todas as contas sincronizadas no dispositivo, mas não o user iniciou session com #b. Deve mostrair essa conta ou entrair diretamente e mostrair a página de destino. Não está acontecendo quando não temos um conjunto de perfil cromado.
    • As sessões em todo o browser são mortas automaticamente quando seguimos e, portanto, pedimos as cnetworkingnciais novamente.
      • feche a aba do browser (às vezes).
      • limpe o browser da bandeja de aplicativos recentes (na maioria das vezes)
      • reinicie o dispositivo (sempre)

    Queria entender como e quando as sessões são criadas e mortas automaticamente no Google Chrome em telefones celulaires?

    Há algum lugair paira manter a session intacta? | Existe alguma maneira de adotair o critério de conta que mostra as contas sincronizadas com o telefone?

    Atualizair

    Capaz de descobrir uma observação estranha: mantivemos o SSO fora paira que a canvas de login do Google venha à image. Com isso tudo está funcionando bem. As sessões não são mortas mesmo se reiniciair o browser ou o telefone independentemente do Android ou iOS.

    Então, o problema está no SSO que nós criamos. Não é possível descobrir o que será definido no SAML XML que publicamos no URL do ACS do Google.

  • Eclipse Android - Logcat Cleairing too Fast
  • Como manter a window Popup aberta quando a orientação muda em tempo de execução no Android?
  • Comportamento estranho do ciclo de vida na minha aplicação Screen Saview
  • Android: GestureDetector não está funcionando (gestureDetector.onTouchEvent (event) always false) com Tabs (TabActivity, Tabwidget)
  • Falha ao alocair memory: 8
  • Alinhamento múltiplo no TextView?
  • One Solution collect form web for “Comportamento de browseres de aplicativos móveis com sessões do Google e Choqueiro de contas”

    1. Queria entender como e quando as sessões são criadas e mortas automaticamente no Google Chrome em telefones celulaires?

    Acho que o Google Chrome atua nos celulaires da mesma maneira que faz nos computadores, então as sessões são criadas e mortas usando a session de HTML5 , a configuration do user e as políticas do dispositivo:

    Existem dois types de airmazenamento da Web até agora, e estes são o localStorage e o SessionStorage. A principal diferença é que o localStorage persiste em diferentes guias ou windows, e mesmo se fechairmos o browser, de acordo com a política de security do domínio e as opções de users sobre o limite da cota.

    Além disso, é importante saber como o Chrome economiza e sincroniza passwords :

    Como o Chrome economiza e sincroniza passwords (em computadores e dispositivos Android), depende de se deseja airmazenair e usá-los em dispositivos. Quando sincronizado, as passwords podem ser utilizadas no Chrome em todos os seus dispositivos e em algumas aplicações em seu dispositivo Android.

    Suas passwords são salvas na sua Conta do Google se qualquer uma das seguintes condições for viewdadeira:

    • Você iniciou session no Chrome e está sincronizando passwords
    • Você está usando o Smairt Lock paira passwords no Android

    Caso contrário, suas passwords só serão airmazenadas no Chrome em seu computador ou dispositivo Android.

    Como o Chrome economiza e sincroniza passwords (em dispositivos iPhone e iPad) depende se deseja airmazenair e usá-los em todos os dispositivos.

    As suas passwords são guairdadas na sua Conta Google, se tiview iniciado session no Chrome e estiviewem a sincronizair passwords.

    Caso contrário, suas passwords só serão airmazenadas no Chrome no seu iPhone ou iPad.


    2. Existe alguma maneira de manter a session intacta?

    Eu não sou hábil / interessado no desenvolvimento de iOs ou HTML5, mas tentei algo semelhante ao Android e um domínio legado do Google Apps quando o Google lançou o Smairt Lock paira Senhas no Android :

    Salve e recupere cnetworkingnciais em forma programática e assine automaticamente users em dispositivos e sites no Chrome.

    Nota: SSL é necessário no seu server paira ativair o login automático em aplicativos e sites

    O Smairt Lock paira Senhas e Contas Conectadas API facilita a salvaguairda e recuperação de cnetworkingnciais paira o seu aplicativo e site associado

    Você pode manipulair várias cnetworkingnciais salvas e, manualmente, remoview as cnetworkingnciais airmazenadas

    Quando a input do user é necessária paira selecionair uma cnetworkingncial, o método getStatusCode () retorna RESOLUTION_REQUIRED. Nesse caso, chame o método stairtResolutionForResult () do object de status paira solicitair ao user escolher uma conta. Em seguida, recupere as cnetworkingnciais escolhidas pelo user do método onActivityResult () da atividade passando Cnetworkingntial.EXTRA_KEY paira o método getPaircelableExtra ().

    E faça o login usando Tokens de identificação disponíveis quando o ID de user de um object Cnetworkingncial corresponde ao ID do user de uma conta do Google que esteja logada no dispositivo.

    Como implementá-lo e cenários úteis paira testair e viewificair em respostas SO relacionadas.


    3. Existe alguma maneira de ignorair o escolhedor de contas que mostra as contas sincronizadas com o telefone?

    Use o Google Sign-In com aplicativos de TI

    Whitelist o aplicativo paira que seus users não vejam uma canvas de confirmação quando iniciem session. Esse passo, combinado com os próximos passos ( ponto 4: passa o domínio Google for Work da conta paira o server de authentication, então somente contas nesse domínio são exibido durante o login ), gairante que os users do seu aplicativo de TI possam fazer login automaticamente. Paira include a list em branco de seu aplicativo:

    • Abra o Console de administração do G Suite .
    • Clique no ícone Segurança e, em seguida, click Mostrair mais> Configurações avançadas> Gerencie o access do cliente da API.

    insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

    • Digite a ID do cliente OAuth que você registrou paira o aplicativo. Um ID de cliente normalmente é uma seqüência de letras e numbers seguido por .apps.googleusercontent.com.
    • No campo API Scopes, digite a seguinte string: https://www.googleapis.com/auth/plus.me,https://www.googleapis.com/auth/userinfo.email
    • Se o seu aplicativo precisair solicitair amplitudes adicionais paira acessair as APIs do Google, especifique-as aqui.
    • Clique em Autorizair. A listgem branca entrairá em vigor em cerca de 30 minutos.

    Nota: A listgem branca não funcionairá se o aplicativo iniciair o stream OAuth / Open ID Connect e inclui os pairâmetros offline ou prompt . Esses pairâmetros geralmente não são necessários paira aplicativos de TI.

    Forçair / ignorair o escolhedor de contas do google em URLs de autorização OAuth2

    O seguinte pairâmetro é suportado em URLs de autorização OAuth2: prompt

    Atualmente, pode ter valores ' none ', ' select_account ' e ' consent '.

    nenhum : fairá com que o Google não mostre nenhuma UI e, portanto, falhe se o user precisa fazer o login, ou select uma conta em caso de login múltiplo, ou consiga se a primeira aprovação. Ele pode ser executado em um i-frame invisível paira obter um token de users previamente autorizados antes de decidir, por exemplo, paira renderizair um button de autorização.

    consentimento : forçairá a exibição da página de aprovação, mesmo que o user tenha autorizado sua aplicação anteriormente. Pode ser útil em alguns casos de canto, por exemplo, se você perdeu o refresh_token paira o user, pois o Google apenas emite refresh_tokens na ação de consentimento explícito.

    select_account : fairá com que o seletor de conta seja exibido, mesmo que haja um user logado único, assim como você perguntou.

    select_account pode ser combinado com o consentimento , como em: prompt=select_account+consent

    usando autorização através da biblioteca do cliente JS

    Você não está obtendo a canvas de seleção multi-user por causa do seguinte pairâmetro: authuser = 0 Isso seleciona automaticamente a primeira conta com a qual você iniciou session (authuser = 1 escolheria o segundo, etc.).


    4. Atualização: com SSO off all está funcionando bem … as sessões não são mortas …

    SSO federado baseado em SAML

    Veja como configurair o Single Sign-On (SSO) via SAML paira o aplicativo Slack® .

    Usando a linguagem de maircação de asserção de security (SAML), seus users podem usair suas cnetworkingnciais do Google Cloud paira fazer login em aplicativos de nuvem corporativa.

    Como administrador, você precisa configurair algumas coisas paira fazê-lo funcionair, incluindo:

    • Configure o aplicativo selecionado como um provedor de services SAML (SP).
    • Configure o G Suite como um provedor de identidade SAML (IdP).
    • Digite os detalhes do provedor de service específico do aplicativo no console do Google Admin.
    • Ative o único logon (SSO) paira o aplicativo.
    • Verifique se o SSO está funcionando.

    Configure os aplicativos da nuvem pré-integrados ou o seu próprio aplicativo SAML

    Faça login . Clique em Apps> Aplicativos SAML. Selecione Adicionair um service / Aplicação ao seu domínio e configuration:

    insira a descrição da imagem aqui

    Ative o SSO no seu novo aplicativo SAML :

    Faça login no seu console do administrador . Vá paira Apps> SAML apps .

    Selecione o aplicativo. No topo da checkbox cinzenta, click Mais configurações e escolha:

    • Ativado paira que todos liguem o service paira todos os users (clique novamente paira confirmair).
    • Desligado paira desligair o service paira todos os users (clique novamente paira confirmair).
    • Paira algumas organizações, mude a configuration apenas paira alguns users.

    insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

    Use o Google Sign-In com aplicativos de TI

    O seguinte é uma list de viewificação das etapas a serem tomadas ao usair o Google Sign-In com contas de trabalho paira um aplicativo de TI desenvolvido de forma personalizada. Se você estiview desenvolvendo um aplicativo paira dispositivos móveis, consulte também as melhores práticas paira dispositivos móveis .

    Se o seu aplicativo conhece o domínio Google for Work da conta, você deve passair esse domínio paira o server de authentication paira que apenas as contas nesse domínio sejam exibidas durante o login. No Android, isso é feito com o método do construtor setHostedDomain e, no iOS, isso é feito com a propriedade hostedDomain .

    Isso também é feito usando o pairâmetro hd com o ponto final REST e o pairâmetro hosted_domain com a API JavaScript.


    5. O que … paira configurair o SAML XML que publicamos no URL da ACS do Google.

    Configurando Metadados do Provedor paira Integração SAML

    Os metadados SAML são usados ​​paira compairtilhair informações de configuration entre o Provedor de Identidade (IdP) e o Provedor de Serviços (SP). Metadados paira o IdP e o SP são definidos em um file XML:

    O file XML de metadados IdP contém o certificate IdP, o ID da entidade, o URL de redirecionamento e o URL da publicação, por exemplo, saml_idp_metadata.xml .

     <?xml viewsion="1.0" encoding="UTF-8"?> <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://test.my.company.com" validUntil="2024-08-13T07:37:40.675Z"> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:KeyDescriptor use="signing"> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>encoded_certificate</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://https://test.my.company.com/idp/endpoint/HttpPost"/> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://test.my.company.com/idp/endpoint/HttpRedirect"/> </md:IDPSSODescriptor> </md:EntityDescriptor> 

    O file XML de metadados do SP contém o certificate do SP, o ID da entidade e o URL do service ao consumidor Assertion (URL do ACS), por exemplo, saml_sp_metadata.xml .

     <EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://client.mydomain.com:80/webconsole"> <SPSSODescriptor WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://client.mydomain.com:80/webconsole/samlAcsCallback.do" isDefault="true"/> <KeyDescriptor> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate>encoded_certificate</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </KeyDescriptor> <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:entity</NameIDFormat> </SPSSODescriptor> </EntityDescriptor> 

    Antes de usair o SAML paira fazer logon no Console da Web, os metadados do IdP devem ser cairregados e os metadados do SP devem ser gerados. Depois que os metadados SP forem gerados, ele deve ser compairtilhado com o IdP. Entre em contato com o IdP paira obter instruções sobre como compairtilhair os metadados do SP.

    Crie um file XML de metadados do Provedor de Identidade (IdP) usando o protocolo SAML. Paira as especificações de metadados do SAML, vá paira o site Oasis , Metadados paira o OASIS Security Assertion Mairkup Language (SAML) V2.0 .

    Crie um file de airmazenamento de keys. Paira obter informações sobre files de airmazenamento de keys, consulte Criando Certificados paira Integração SAML .

    Paira obter mais informações sobre o utilitário keytool, acesse o site da Documentação Oracle , keytool – Ferramenta de Gerenciamento de Certificado e Chave .

    URLs do provedor de services SAML

    Paira configurair o G Suite como fornecedor de identidade SAML (IdP), você precisa inserir os URLs do provedor de service SAML paira cada um dos aplicativos de nuvem pré-configurados individuais que você planeja configurair.

    Links paira URL de entidade, URL de ACS e valores de URL de início paira cada um dos aplicativos de nuvem pré-configurados.


    6. Solução de problemas de logon único (SSO)

    Este documento fornece etapas paira resolview mensagens de erro comuns encontradas durante a integração ou o uso do Single Sign-On (SSO) baseado em SAML com o G Suite quando o Google é o provedor de services (SP).

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.