Gerir fornecedores SAML e OIDC de forma programática
Este documento mostra como usar o SDK de administrador da Identity Platform para gerir configurações do fornecedor do Security Assertion Markup Language (SAML) 2.0 e do OpenID Connect (OIDC) de forma programática.
Com o SDK de administração, pode configurar automaticamente fornecedores, realizar operações CRUD básicas, rodar certificados e muito mais. Isto é útil quando tem um grande número de fornecedores que seria difícil gerir manualmente através da consola do Google Cloud .
Antes de começar
Trabalhar com fornecedores de SAML
Criar uma configuração do fornecedor SAML
Tem de fornecer os seguintes parâmetros quando criar uma configuração do fornecedor SAML. Pode ter de consultar a documentação do seu fornecedor de identidade para ver detalhes sobre como obter alguns dos valores.
- Nome a apresentar
- Um nome a apresentar intuitivo para a configuração. Este nome também é a etiqueta do fornecedor na Google Cloud consola.
- Ativado
- Se a configuração do fornecedor atual está ativada ou desativada. Os utilizadores não podem iniciar sessão com fornecedores desativados.
- ID do fornecedor
-
O identificador exclusivo do fornecedor, que começa com
saml.. - ID da entidade do fornecedor de identidade
- O ID da entidade do fornecedor.
- URL do SSO
- O URL de SSO de SAML para o fornecedor. O URL tem de ser válido.
- Certificados X.509
-
Uma lista de certificados X.509 do fornecedor SAML, incluindo as strings
-----BEGIN CERTIFICATE-----e-----END CERTIFICATE----. Estes são usados para a assinatura de tokens no fornecedor de identidade.Quando o Identity Platform recebe uma resposta SAML, valida a respetiva assinatura através de um certificado registado. Se a validação falhar, a resposta é rejeitada. Tem de atualizar estes certificados à medida que as chaves são alternadas. Considere carregar vários certificados para evitar indisponibilidades durante as rotações.
- ID da entidade do partido de retransmissão
- O ID da entidade da parte fidedigna (RP/SP) SAML. Normalmente, é o URL da app. No fornecedor de identidade SAML, isto é denominado público-alvo.
- URL de retorno
-
O URL para o qual regressar quando a autenticação estiver concluída. Os fornecedores de SAML referem-se normalmente a isto como o URL do serviço de consumo de declarações (ACS). Tem de registar este URL junto do fornecedor de SAML. Deve ter um aspeto semelhante a
https://PROJECT-ID.firebaseapp.com/__/auth/handler, semelhante aos URLs apresentados na consola Google Cloud . Para saber mais, consulte o artigo Iniciar sessão com utilizadores com SAML.A utilização do URL de retorno predefinido diminui a complexidade da validação das respostas SAML. No entanto, também pode optar por apresentar um domínio personalizado. Neste caso, certifique-se de que o URL de retorno do Identity Platform para o seu projeto está configurado corretamente com o seu fornecedor de identidade SAML. Normalmente, tem um aspeto semelhante a:
https://AUTH-DOMAIN/__/auth/handler.
O exemplo seguinte demonstra como criar uma configuração do fornecedor SAML:
Node.js
const newConfig = {
displayName: 'SAML provider name',
enabled: true,
providerId: 'saml.myProvider',
idpEntityId: 'IDP_ENTITY_ID',
ssoURL: 'https://example.com/saml/sso/1234/'
x509Certificates: [
'-----BEGIN CERTIFICATE-----\nCERT1...\n-----END CERTIFICATE-----',
'-----BEGIN CERTIFICATE-----\nCERT2...\n-----END CERTIFICATE-----',
],
rpEntityId: 'RP_ENTITY_ID',
// Using the default callback URL.
callbackURL: 'https://project-id.firebaseapp.com/__/auth/handler',
};
admin.auth().createProviderConfig(newConfig).then(() => {
// Successful creation.
}).catch((error) => {
// Handle error.
});
Ir
newConfig := (&auth.SAMLProviderConfigToCreate{}). DisplayName("SAML provider name"). Enabled(true). ID("saml.myProvider"). IDPEntityID("IDP_ENTITY_ID"). SSOURL("https://example.com/saml/sso/1234/"). X509Certificates([]string{ "-----BEGIN CERTIFICATE-----\nCERT1...\n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----\nCERT2...\n-----END CERTIFICATE-----", }). RPEntityID("RP_ENTITY_ID"). CallbackURL("https://project-id.firebaseapp.com/__/auth/handler") saml, err := client.CreateSAMLProviderConfig(ctx, newConfig) if err != nil { log.Fatalf("error creating SAML provider: %v\n", err) } log.Printf("Created new SAML provider: %s", saml.ID)
Python
saml = auth.create_saml_provider_config( display_name='SAML provider name', enabled=True