Configuração do IDP com Google Workspace
Essa página tem como objetivo auxiliar na configuração do seu IDP Shibboleth com a configuração de acesso SSO do Google Workspace.
Atenção !
Substituir a variável $DOMAIN presente no roteiro pelo domínio de sua instituição. Exemplo: $DOMAIN por "rnp.br"
Guia passo a passo
Seguir os procedimentos abaixo para a configuração da autenticação federada do Google em seu IdP:
Alterar o arquivo "relaying-party.xml".
Dentro da tag <util:list id="shibboleth.RelyingPartyOverrides">
<util:list
id="shibboleth.RelyingPartyOverrides">
...
</util:list>
Incluir o código abaixo
<bean id="Google" parent="RelyingPartyByName" c:relyingPartyIds="google.com">
<property name="profileConfigurations">
<list>
<bean parent="SAML2.SSO" p:encryptAssertions="false" p:encryptNameIDs="false" />
</list>
</property>
</bean>
Alterar o arquivo "saml-nameid.xml".
Dentro da tag <util:list id="shibboleth.SAML2NameIDGenerators">
<!-- Release to Google an "emailAddress" NameID with the value of Gprincipal -->
<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="google.com" />
</property>
</bean>
Alterar o arquivo "attribute-resolver.xml.
Dentro da arquivo de configuração /conf/attribute-resolver.xml criar uma nova definição de atributo iniciando com o seguinte parâmetro <AttributeDefinition> para gerar o atrbituo "Gprincipal"
<AttributeDefinition xsi:type="Template" id="Gprincipal">
<InputDataConnector ref="dcLDAP" attributeNames="mail" />
<Template>
<![CDATA[
${mail}
]]>
</Template>
</AttributeDefinition>
Criar o arquivo de propriedade do atributo Gprincipal.
Dentro do diretório conf/attributes/custom/ criar o arquivo com o seguinte nome "Gprincipal.properties" e inserir o seguinte conteúdo:
# Gprincipal
id=Gprincipal
transcoder=SAML2StringTranscoder
displayName.en=Username Google
displayName.it=Username Google
description.en=Username for Google
description.it=Username usato da Google
saml2.name=urn:oid:0.9.2342.19200300.100.1.3
saml1.encodeType=false
Criar o arquivo de metadata dentro do diretório /metadata.
Nessa etapa deve-se criar o arquivo de metadado dentro do diretório do Shibboleth. Para isso use um editor de sua preferência para criar o metadado com o segiunte nome:
google-md.xml
Dentro desse arquivo copiar e colar esse conteúdo:
ATENÇÃO! Essa etapa possui uma alteração no conteúdo abaixo, repare que nesse caso há uma variável "$DOMAIN", você deve substituir pelo domínio configurado na sua autenticação SSO do Google.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- entityID = "google.com" -->
<EntityDescriptor entityID="google.com" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<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="https://www.google.com/a/$DOMAIN/acs" />
</SPSSODescriptor>
</EntityDescriptor>
Alterar o arquivo "metadata-providers.xml".
Acrescentar dentro do arquivo /conf/metadata-providers.xml o seguinte conteúdo:
<MetadataProvider id="Google” xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/google-md.xml"/>
Alterar o arquivo "attribute-filter.xml".
Dentro da tag <AttributeFilterPolicyGroup>
<AttributeFilterPolicy id="releaseToGoogle">
<PolicyRequirementRule xsi:type="OR">
<Rule xsi:type="Requester" value="google.com/a/$DOMAIN" />
</PolicyRequirementRule>
<AttributeRule attributeID="mail">
<PermitValueRule xsi:type="ANY" />
</AttributeRule>
</AttributeFilterPolicy>
Configurar o arquivo attribute-filter.xml para a liberação de atributo ao SP Google.
Dentro do arquivo /conf/attribute-filter.xml inserir a seguinte liberação de regra:
<!-- G Suite (Google Apps) -->
<AttributeFilterPolicy id="google.com">
<PolicyRequirementRule xsi:type="Requester" value="google.com" />
<AttributeRule attributeID="Gprincipal">
<PermitValueRule xsi:type="ANY" />
</AttributeRule>
</AttributeFilterPolicy>
Após terminar a criação e configuração do metadado do google será necessário reiniciar o serviço do shibboleth, para isso faça:
systemctl restart jetty9.service && tail -f /opt/shibboleth-idp/logs/idp-process.log
Agora, precisamos configurar do lado do Portal Admin do Google for Education
Sign-in page URL:
https://shibserver.university.edu/idp/profile/SAML2/Redirect/SSO
Sign-out page URL:
https://shibserver.university.edu/idp/profile/Logout
E certifique-se de que “Use a domain specific issuer” esteja marcado.
Além disso, esse "Verificiation certificate" é seu idp.crt
É isso. Depois de concluir o procedimento acima, você deverá ter uma instância do Google Apps for Education em funcionamento, autenticando-se em seu servidor Shibboleth.
Lembrando que é necessário que os usuários que irão acessar o google tenham configurado as suas permissões com acesso administrador ao espaço.
Last updated
Was this helpful?