> For the complete documentation index, see [llms.txt](https://ajuda.rnp.br/cafe/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajuda.rnp.br/cafe/idp-cafe/faq/configuracao-do-idp-com-google-workspace.md).

# Configuração do IdP com Google Workspace

{% hint style="warning" %}
Atenção!\
Será necessária uma conta Super Admin do Google Workspace para configuração\
das informações do IdP Shibboleth como provedor de SSO
{% endhint %}

#### Procedimentos de Configuração no Console Admin do Google

Acesse a página de admin do Google Workspace (<https://admin.google.com>) com\
as credenciais de Super Admin e depois entre no menu à esquerda - Segurança >\
Autenticação > SSO com IdP de terceiros. Na tela seguinte, clique em Adicionar\
Perfil SAML, na seção de Perfis SSO de terceiros, para criar um novo perfil.

#### Adicionar informações do IdP no Google&#x20;

Na página de criação de perfil, preencha as informações conforme descrição a\
seguir:\
• **Nome do perfil SSO** – Nome para identificação do IdP. Ex.: IdP CAFe Testes\
• **EntityID do IdP** – Informe o entityID do IdP presente do metadado do IdP.\
Ex.: <https://cafetestes.rnp.br/idp/shibboleth>\
• **URL de SSO** – URL do perfil SAML Redirect SSO do Shibboleth IdP presente\
no metadado do IdP. Ex.:\
<https://cafetestes.rnp.br/idp/profile/SAML2/Redirect/SSO>\
• **URL de logout** – URL de Logout para a qual o usuário será redirecionado\
após efetuar logout do serviço. Ex.:\
<https://cafetestes.rnp.br/idp/profile/Logout>\
• **URL para alteração de senha** – URL da instituição para alteração de senha\
• **Certificado de verificação** - Faça upload do certificado do IdP Shibboleth\
da instituição. Em uma instalação padrão de IdP da CAFe, o certificado pode\
ser encontrado em /opt/shibboleth-idp/credentials/idp.crt.\
Após o preenchimento das informações acima, clique no botão **Salvar**.

#### Copiar informações sobre SP do Google

Na página do perfil SAML adicionado anteriormente, clique na seção de **Detalhes**\
**do SP** e copie as seguintes informações que serão utilizadas na etapa de\
procedimentos de configuração no IdP:\
a. **EntityID do SP** – entityID de SP gerado pelo Google. Ex.:\
<https://accounts.google.com/samlrp/abc123>\
b. **URL de ACR do SP** – URL do ACR de SP gerado pelo Google. Ex.:\
<https://accounts.google.com/samlrp/abc123/acs>\
c. **Certificado do SP** – Clique no botão para **Gerar Certificado** e depois em\
Salvar para obter o conteúdo do certificado que será utilizado para cifrar a\
asserção SAML de resposta.

#### Atribuir perfil SSO para domínio, grupo ou unidade organizacional&#x20;

Após a adição do perfil SSO com provedor SAML no Google Workspace, é possível definir onde esse perfil será aplicado dentro da organização. O Google Workspace permite aplicar o perfil SSO (IdP configurado) nos seguintes cenários:

1. **Domínio principal** - Aplica o perfil SSO para todos os usuários da instituição.
2. **Unidade Organizacional (OU)** - Permite aplicar o perfil SSO apenas para um conjunto específico de usuários de uma Unidade Organizacional.
3. **Grupo** - Possibilita definir o perfil para grupos específicos.&#x20;

**Recomendação:** Utilizar a opção 2 ou 3 e manter uma conta Super Admin com login local para contingência.&#x20;

Para isso, acesse a seção **Gerenciar Atribuições de perfi SSO** e clique em **Gerenciar**. Na tela seguinte, selecione o Grupo ou a OU desejada, escolha o nome do perfil SSO (IdP) adicionado na etapa anterior e clique em salvar, conforme exemplo na imagem a seguir.

#### Procedimentos de Configuração no IdP&#x20;

{% hint style="info" %}
Arquivos que serão alterados\
• saml-nameid.xml\
• attribute-resolver.xml\
• metadata-providers.xml\
• attribute-filter.xml
{% endhint %}

Os arquivos são encontrados no diretório: **/opt/shibboleth-idp/conf**. Recomneda\
se a realização de backup desses arquivos antes de editá-los.

#### Alterar saml-nameid.xml

Adicione dentro da tag **\<util:list id="shibboleth.SAML2NameIDGenerators">** o\
seguinte conteúdo, substituindo o valor da propriedade **c:candidate** pelo valor\
copiado no **item** a da seção de informações do SP do Google:

```xml
<bean parent="shibboleth.SAML2AttributeSourcedGenerator" 
p:format="urn:oasis:names:tc:SAML:1.1:nameid
format:emailAddress" 
p:attributeSourceIds="#{ {'Gprincipal'} }"> 
<property name="activationCondition"> 
<bean parent="shibboleth.Conditions.RelyingPartyId" 
c:candidate="https://accounts.google.com/samlrp/abc123" /> 
</property> 
</bean>
```

#### Alterar attribute-resolver.xml&#x20;

Adicione uma nova definição de atributo com a seguinte conteúdo:

```xml
<AttributeDefinition xsi:type="Template" id="Gprincipal"> 
<InputDataConnector ref="dcLDAP" attributeNames="mail" /> 
<Template> 
<![CDATA[ 
${mail} 
]]> 
</Template> 
</AttributeDefinition>
```

{% hint style="warning" %}
**Observação:** O atributo **Gprincipal** (definido no exemplo como o atributo mail)\
deve ser composto de forma que seu valor seja **idêntico ao endereço de e-mail do**\
**usuário cadastrado no Google Workspace**. Ou seja, o valor enviado pelo IdP\
precisa corresponder exatamente ao e-mail existente na conta do usuário no\
Google Workspace, sem diferenças de formatação ou domínio.
{% endhint %}

#### Alterar metadata-providers.xml&#x20;

Adicione um novo Provedor de Metadado com o seguinte conteúdo:

```xml
<MetadataProvider id="google-workspace" 
xsi:type="FilesystemMetadataProvider" 
metadataFile="%{idp.home}/metadata/google-metadata.xml" />
```

#### Alterar attribute-filter.xml&#x20;

Adicione uma nova Política de Filtro de Atributos com o seguinte conteúdo,\
substituindo o valor da propriedade **value** pelo valor copiado no **item a** da seção de\
configuração no Google Workspace:

```xml
<AttributeFilterPolicy id="ReleaseToGoogleWorkspace"> 
<PolicyRequirementRule xsi:type="Requester" 
value="https://accounts.google.com/samlrp/abc123" /> 
<AttributeRule attributeID="Gprincipal"> 
<PermitValueRule xsi:type="ANY" /> 
</AttributeRule> 
</AttributeFilterPolicy>
```

#### Criar arquivo de metadado do Google

Crie o arquivo **/opt/shibboleth-idp/metadata/google-metadata.xml** com o\
seguinte conteúdo, substituindo os valores em destaque (**entityID do SP,**\
**Certificado do SP e URL de ACS do SP**) pelos valores copiados nos itens a, b e c da\
seção de informações do SP do Google.\
**Observação:** Remova o cabeçalho (-----BEGIN CERTIFICATE-----) e rodapé (----\
END CERTIFICATE-----) do **Certificado do SP**.

```xml
<?xml version="1.0" encoding="utf-8"?> 
<EntityDescriptor entityID="entityID do SP" 
    xmlns="urn:oasis:names:tc:SAML:2.0:metadata"> 
    <SPSSODescriptor 
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" 
        AuthnRequestsSigned="false" 
        WantAssertionsSigned="true"> 
        <KeyDescriptor use="encryption"> 
            <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
                <X509Data> 
                    <X509Certificate> 
Certificado do SP 
                    </X509Certificate> 
                </X509Data> 
            </KeyInfo> 
            <EncryptionMethod 
Algorithm="http://www.w3.org/2001/04/xmlenc#aes128
cbc"></EncryptionMethod> 
            <EncryptionMethod 
Algorithm="http://www.w3.org/2001/04/xmlenc#aes192
cbc"></EncryptionMethod> 
            <EncryptionMethod 
Algorithm="http://www.w3.org/2001/04/xmlenc#aes256
cbc"></EncryptionMethod> 
            <EncryptionMethod 
Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep
mgf1p"></EncryptionMethod> 
        </KeyDescriptor> 
        <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid
format:emailAddress</NameIDFormat> 
        <AssertionConsumerService index="1" 
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
            Location="URL de ACS do SP" /> 
    </SPSSODescriptor> 
</EntityDescriptor>
```

#### Reiniciar o IdP e testar acesso ao serviço Google

Após execução das etapas anteriores, reinicie o serviço do jetty com o seguinte\
comando:

```
sudo systemctl restart jetty.service 
```

Acompanhe os logs do IdP em /**opt/shibboleth-idp/logs/idp-process.log** e\
verifique se o IdP reiniciou sem nenhum erro.

\
Faça o teste, acessando um dos serviços do Google (ex. drive.google.com)\
utilizando seu e-mail cadastrado no Google Workspace (deve ser utilizado um\
usuário diferente do Super Admin). Após isso, o navegador deve ser redirecionado\
para o IdP, onde será possível se autenticar com suas credenciais padrões da\
instituição.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ajuda.rnp.br/cafe/idp-cafe/faq/configuracao-do-idp-com-google-workspace.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
