Criando um registro do usuário OIDC no API Manager
Crie um registro de usuário OIDC específico da organização quando a autenticação multifator (MFA) for necessária.
O API Connect fornece dois métodos para criar um registro do usuário do OIDC no API Designer, conforme descrito nas seções a seguir:
Usando a UI para criar um registro do usuário do OIDC
Use a interface de usuário do API Designer para criar um registro de usuário OIDC específico da organização quando a autenticação multifator (MFA) for necessária.
- Na página de navegação do API Designer, clique em
Resources. - Clique em Registros do Usuário
- Clique em Criar e selecione OIDC User Registry.Importante: Não compartilhe registros de usuários entre o API Manager e o Portal do desenvolvedor, nem entre sites do Portal do desenvolvedor quando a integração de autoatendimento estiver ativada ou quando forem esperadas exclusões de contas em qualquer um dos sites. Você deve criar registros do usuário separados para eles, mesmo se os registros separados apontarem para o mesmo provedor de autenticação de backend (por exemplo, um servidor LDAP). Essa separação permite que o Portal do desenvolvedor mantenha endereços de e-mail exclusivos em todo o catálogo, sem que o API Manager precise do mesmo requisito. Isso também evita problemas com usuários que excluem suas contas do Portal do desenvolvedor, o que afeta seu acesso ao API Manager.
- Na página Criar registro do usuário do OIDC, use os campos em cada uma das seções a seguir para configurar as configurações de registro e, em seguida, clique em Criar.
Muitas das configurações de registro são pré-configuradas para simplificar as etapas de configuração.
- Tipo de Provedor
- Use as configurações na Tabela 1 para definir o tipo de provedor.
Tabela 1. Configurações de tipo de provedor Campo Descrição Tipo de Provedor Provedor OIDC. Selecione um dos seguintes provedores OIDC suportados: - <
- GitHub
- Folga
- X (anteriormente conhecido como Twitter)
- Windows Live
- O OIDC padrão (o valor padrão permite especificar outro provedor)
Título Forneça um nome descritivo para fins de exibição. Nome Automaticamente gerado. Este nome é usado em comandos da CLI para referenciar o registro. Para obter detalhes dos comandos da CLI para gerenciar registros do usuário, consulte a documentação de referência da CLI do kit de ferramentas. Resumo Forneça uma breve descrição do novo registro. E-mail necessário Selecione esta opção se um endereço de e-mail for necessário como parte de um processo de integração do usuário Se selecionado, o provedor de identidade de origem deverá fornecer o endereço de e-mail como parte do processo de autenticação durante a integração. Observação: um endereço de e-mail não é exigido por padrão para a integração com o Cloud Manager ou o Portal do desenvolvedor.Endereço de e-mail exclusivo Selecione esta opção se os endereços de e-mail devem ser exclusivos no registro do usuário. Observação: cada conta no Portal do desenvolvedor, inclusive em registros de usuários diferentes para o mesmo site, deve ter um endereço de e-mail exclusivo, incluindo a conta de administrador do site. - Terminal do provedor
- Gerado automaticamente para os provedores mais suportados. No campo Terminal de autorização, digite a URL do terminal de autorização do provedor.
- Terminal do token
- Preencha as configurações conforme descrito na Tabela 2.
Tabela 2. Configurações do terminal de token Campo Descrição URL Pré-configurado para a maioria dos provedores do OIDC suportados. Digite a URL do terminal de token do provedor. TLS Selecione o Perfil do cliente TLS para o terminal de token (OIDC deve ser configurado para usar TLS). O padrão é Perfil do cliente TLS padrão. - Terminal de UserInfo
- Preencha as configurações conforme descrito na Tabela 3.
Tabela 3. Configurações do terminal UserInfo Campo Descrição URL Pré-configurado para a maioria dos provedores do OIDC suportados. Digite a URL do terminal userinfo do provedor. ParaLinkedIn, o endpoint mudou e agora usa o seguinte valor:
Se você configurou anteriormente o registro OIDC usando o protocolo OIDC LinkedIn anterior, não será necessário especificar esse terminal.https://api.linkedin.com/v2/meTLS Selecione o Perfil do Cliente TLS para o terminal userinfo (OIDC deve ser configurado para usar TLS). O padrão é Perfil do cliente TLS padrão. - Terminal de E-mail
- Necessário para o protocolo OIDC do LinkedIn anterior
Devido a mudançasLinkedIn, as definições de configuração do registro OIDC emAPI Connect também mudou. Se você estiver configurando um novo registro OIDC paraLinkedIn, você pode deixar o campo Email Endpoint em branco.
Se você configurou anteriormente um registro do OIDC para uso com o protocolo OIDC anterior do LinkedIn , atualize sua configuração fornecendo as configurações do terminal de E-mail conforme descrito na Tabela 4. A nova configuração é necessária para o protocolo OIDC LinkedIn anterior.
Tabela 4. Configurações do Terminal de E-mail Campo Descrição URL Para o protocolo OIDC LinkedIn anterior, esse campo é padronizado para o valor a seguir:
É possível substituir a configuração digitando um novo valor.https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))TLS Selecione o Perfil do Cliente TLS para o terminal userinfo (OIDC deve ser configurado para usar TLS). O padrão é Perfil do cliente TLS padrão. - Terminal JWKS
- Preencha as configurações conforme descrito na Tabela 5.
Tabela 5. Configurações do terminal JWKS Campo Descrição URL Digite a URL do terminal somente leitura que contém as informações de chaves públicas no formato JWKS. TLS Selecione o Perfil do Cliente TLS para o terminal userinfo (OIDC deve ser configurado para usar TLS). O padrão é Perfil do cliente TLS padrão. - Efetuar Logout
- É possível configurar um dos seguintes tipos de suporte de logout, mas não ambos:
- Redirecionamento de logout:
Permite especificar o que o usuário vê após efetuar logout do API Connect; por exemplo, você pode desejar "redirecionar" o usuário para o terminal de logout do provedor OIDC ou para outro endereço. Quando o usuário faz logout do site API Connect, o navegador é redirecionado para o URL especificado para processamento adicional pelo URL especificado.
- Logout iniciado por RP:
Fornece um formulário mais seguro de acordo com o OpenID Connect RP-Initiated Logout 1.0 Profile. Quando o usuário sai do site API Connect, API Connect emite uma solicitação POST para o URL do endpoint especificado para limpar a sessão do usuário. Com essa opção, você também pode fornecer opcionalmente um URL de endpoint de redirecionamento de logout do RP.
Preencha as configurações conforme descrito na Tabela 6.
Tabela 6. Opções de logout Campo Descrição URL de redirecionamento de logout Opcional. Forneça um URL para redirecionar o navegador quando o usuário se desconectar do site API Connect. Se você usar essa opção, não ative o Logout de RP do OIDC
Ativar o logout OIDC RP Selecione esta opção para usar o logout iniciado por RP em vez de o redirecionamento de logout convencional Se você usar essa opção, não forneça um URL de redirecionamento de Logout. Com o logout iniciado por RP, você pode especificar opcionalmente um URL de redirecionamento de logout por RP.
Terminal da URL em que o RP emitirá uma solicitação POST Forneça o URL do ponto de extremidade em que a solicitação POST será executada; por exemplo, o ponto de extremidade de autorização do provedor OpenID. TLS Selecione o perfil TLS para usar ao enviar a solicitação POST para o terminal do provedor OpenID . URL do terminal de redirecionamento do logout RP Opcional. Forneça um URL para o qual o provedor de OIDC possa redirecionar após a operação de logout. O URL funciona como post_logout_redirect_uri, conforme descrito no perfil 1.0 do OpenID Connect RP-Initiated Logout.Incluir refresh_token no logout Opcional. Permita que o refresh_token seja incluído, além do id_token_hint, de acordo com o OpenID Connect RP-Initiated Logout 1.0 Profile. - Redirecionamento de logout:
- Informações sobre o Cliente
- Preencha as configurações conforme descrito na Tabela 7.
Tabela 7. Configurações de informações do cliente Campo Descrição ID do cliente Forneça o ID do cliente do aplicativo que está registrado com o provedor OIDC selecionado. Segredo do cliente Forneça o segredo do cliente do aplicativo que está registrado com o provedor OIDC selecionado. Esse campo é opcional quando você cria um diretório OIDC do tipo Padrão e configura o Método de autenticação de cliente como Corpo do formulário codificado por dados Se não estiver usando o segredo do cliente, verifique se o TLS mútuo está configurado com o provedor do OIDC. Para ativar o TLS mútuo, crie um perfil TLS e inclua-o na configuração do registro de usuário do OIDC.
Tipo de resposta Pré-configurado para a maioria dos provedores do OIDC suportados. Especifique o tipo de dados da resposta que será recebida do provedor OIDC. Escopos Pré-configurado para a maioria dos provedores do OIDC suportados. Especifique o escopo de acesso para o provedor OIDC. Método de Autenticação do Cliente Pré-configurado para a maioria dos provedores do OIDC suportados. Selecione o método de autenticação a ser usado com o provedor OIDC. As opções são: - Esquema de autenticação básica http
- Corpo do formulário codificado por dados
- Suporte Adicional
- Opcional. Selecione os parâmetros de segurança adicionais descritos na Tabela 8
Tabela 8. Opções de segurança adicionais Parâmetro de segurança Configurando o nome para CLI Descrição NONCE nonceAtivar a extensão NONCE para evitar que solicitações comprometidas sejam usadas novamente (reproduzidas). PKCE (Proof Key for Code Exchange) pkceAtivar a extensão PKCE para permitir que os clientes públicos possam minimizar a ameaça de ter o código de autorização interceptado. - Recursos avançados
- Opcional. Selecione os recursos avançados descritos na Tabela 9
Tabela 9. Recursos avançados Rótulo de Recurso / UI Configurando o nome para CLI Descrição Integração automática auto_onboardPermitir que os usuários executem chamadas para APIs sem efetuar login primeiro, desde que apresentem um token válido emitido pelo provedor OIDC. Nota: não se aplica a organizações de consumidoresUsar sempre o terminal userinfo userinfoConfigura o registro do usuário OIDC para buscar sempre dados do usuário do terminal userinfo, se preenchido. Use o Portal como terminal para o tráfego do provedor OIDC externo proxy_redirectAo autenticar usuários, redirecione o provedor OIDC externo para se comunicar com o Portal do desenvolvedor em vez do API Manager. Quando ativado, o URI de redirecionamento do Portal do desenvolvedor deve ser definido como /ibm_apim/oidcredirect.. Para obter detalhes, consulte o URI de redirecionamento.Retornar token de acesso de terceiros proxy_access_tokenIncluir o token de acesso OIDC de terceiros na resposta. Nota: ative essa configuração apenas para propósitos de depuração.Essa configuração não é recomendada em um ambiente de produção. Quando essa configuração for ativada, o tamanho do token será aumentado quando uma solicitação for feita para o API Connect usando o token O tamanho maior do token pode exceder o limite do protocolo HTTP, resultando em um erro ERR_HTTP2_PROTOCOL_ERROR ou ERR_CONNECTION_CLOSED.
É possível evitar o problema de tamanho ativando adicionalmente Retornar access_token e id_token de terceiros como solicitações separadas para que os tokens de terceiros não sejam incluídos no access_token que é emitido API Connect.
Retornar o id_token de terceiros proxy_id_tokenIncluir o OIDC id_token de terceiros na resposta. Nota: ative essa configuração apenas para propósitos de depuração.Essa configuração não é recomendada em um ambiente de produção. Quando essa configuração for ativada, o tamanho do token será aumentado quando uma solicitação for feita para o API Connect usando o token O tamanho maior do token pode exceder o limite do protocolo HTTP, resultando em um erro ERR_HTTP2_PROTOCOL_ERROR ou ERR_CONNECTION_CLOSED.
É possível evitar o problema de tamanho ativando adicionalmente Retornar access_token e id_token de terceiros como solicitações separadas para que os tokens de terceiros não sejam incluídos no access_token que é emitido API Connect.
Retornar access_token e id_token de terceiros como solicitações separadas proxied_token_as_separate_claimInclua os tokens OIDC de terceiros (os proxy_access_tokeneproxy_id_token) na resposta como solicitações separadas em vez de incluí-los no access_token emitido pelo API Connect. Para usar esse recurso, deve-se ativar pelo menos uma das opções de Retornar token de acesso de terceiros e Retornar id_token de terceirosSeparar os tokens de terceiros os impede de afetar o tamanho do access_token emitido pelo API Connect.
Retransmissão do token token_relayPermita que access_token/refresh_tokenenvie redirecionamento 302 para logoutPOST de informações do usuário post_userinfoSe suportado por seu provedor OIDC, usando o método HTTP POST ao entrar em contato com o terminal userinfo. Nota: nem todos os provedores OIDC suportam POST. Assegure-se de que seu provedor OIDC suporte isso antes de ativar o recurso.Use a configuração de expiração do token IBM APIC a partir da nuvem override_provider_ttlSubstitua a configuração de expiração do token do provedor OIDC pelas configurações de expiração do token de acesso e do token de atualização que são configuradas no API Connect. Para obter informações sobre como configurar o token de acesso e as configurações de expiração do token de atualização no API Connect, consulte Configurando tempos limites para tokens de acesso e tokens de atualização Desativar verificação de hash (apenas CLI) disable_hash_verificationDesativar at_hash,c_hash - Mapeamento de Usuários
- Preencha as configurações conforme descrito na Tabela 10.Nota: os campos Mapeamento de usuário são pré-configurados para a maioria dos provedores OIDC suportados para minimizar possíveis erros; tenha cuidado ao mudar as configurações. Para a opção OIDC padrão, entre em contato com seu provedor OIDC para obter os detalhes dos campos.
Tabela 10. Configurações de mapeamento do usuário Campo Descrição Nome do usuário O nome do campo no token de resposta que contém o nome de usuário do usuário. Nota: o campo Nome do usuário deve ser exclusivo para esse registro do OIDC, porque ele identifica o usuário no sistema e não pode ser mudadoE-mail O nome do campo no token de resposta que contém o endereço de e-mail do usuário. Nome O nome do campo no token de resposta que contém o nome do usuário. Sobrenome O nome do campo no token de resposta que contém o sobrenome do usuário.
- URI de redirecionamento
- A seção URI de redirecionamento lista os terminais para os quais o servidor
de autorização OIDC irá redirecionar o código de autorização. Há um terminal para cada tipo de organização do API Connect : administração de nuvem, organização do provedor e organização do consumidor... O terminal de redirecionamento é necessário
quando um usuário registra sua aplicação com o provedor OIDC. Por exemplo, se este registro de
usuário de OIDC for usado por uma organização do provedor, o usuário deverá registrar o terminal
de redirecionamento da organização do provedor com o provedor OIDC. Esses campos somente leitura são fornecidos para que você copie
os valores do terminal conforme necessário.Observação: se o Portal do Desenvolvedor for acessível publicamente e você selecionar a opção
proxy_redirect, deverá configurar o provedor do OIDC para usar o seguinte URI de redirecionamento:- Caminho do URI:
/ibm_apim/oidcredirect - Completo URL exemplo:
https://<your-developer-portal-domain>/ibm_apim/oidcredirect
Essa configuração garante que o provedor OIDC possa redirecionar corretamente os usuários autenticados de volta ao Portal do desenvolvedor como parte do fluxo de login.<your-developer-portal-domain>é o nome real do host do seu Portal do desenvolvedor voltado para o público; por exemplo,developer.example.com. - Caminho do URI:
Ativando o registro do usuário OIDC
Conclua as etapas a seguir para ativar o registro de novos usuários para um catálogo específico no Portal do desenvolvedor. Repita esse procedimento para cada catálogo que usará o novo registro.
- No painel de navegação, clique em
Manage. - Selecione o catálogo para o qual você ativará o novo registro do usuário do OIDC.
- Na área de janela de navegação, clique na guia Configurações do Catálogo
- Na página Configurações , clique em Onboarding(Onboarding)
- Na página Integração , clique em Editar na seção Registros do usuário do catálogo .
- Na página Editar registro do usuário, selecione o novo registro do usuário do OIDC para ativar o seu catálogo.
- Clique em Salvar.
Usando a CLI para criar um registro do usuário OIDC
Use a CLI do developer toolkit para criar um registro do usuário do OIDC específico da organização quando a autenticação de diversos fatores (MFA) for necessária.
- Um registro OIDC não pode ser usado para proteger APIs no gateway.
- Se você estiver usando um registro de usuário OIDC para login, o servidor de gerenciamento tratará da interação com o provedor OIDC de terceiros. O servidor de gerenciamento é considerado o aplicativo do ponto de vista do provedor de OIDC de terceiros. Portanto, o ponto de extremidade de redirecionamento do OIDC no servidor de gerenciamento, que o servidor de autorização de terceiros usa para enviar o token, deve estar acessível ao provedor do OIDC. Para garantir as funções de login, você deve permitir o acesso se o seu ambiente API Connect estiver protegido por um firewall. Isso se aplica ao login do usuário no API Manager e no Cloud Manager.
- Se o registro de usuário do OIDC for usado para o login do consumidor no Portal do desenvolvedor e o Portal do desenvolvedor estiver na DMZ, você poderá usar a propriedade
proxy_redirect. Isso permite que o Portal do desenvolvedor atue como o ponto de extremidade para a comunicação de proxy entre o provedor OIDC e o site API Connect. - Quando você registra seu aplicativo com o provedor de OIDC de terceiros, é necessário fornecer o URI de redirecionamento de OIDC associado, https://consumer.mycompany.com/consumer-api/oauth2/redirect por exemplo. No entanto, não é possível acessar essas informações até que você crie o registro de usuário do OIDC em API Connect. Primeiro, registre seu aplicativo sem essas informações e depois atualize-o, conforme detalhado nas instruções desta página.
Efetuando Login no servidor de gerenciamento
apic login --server mgmt_endpoint_url --username user_id --password password --realm provider/identity_provider--realm inserindo o comando a seguir para ver uma lista de todos os provedores de identidade disponíveis (não é necessário estar conectado para usar este comando):apic identity-providers:list --scope provider --server platform_api_endpoint_url --fields title,realmPor exemplo,apic identity-providers:list --scope provider --server platform_api_endpoint_url --fields title,realm
total_results: 2
results:
- title: API Manager User Registry
realm: provider/default-idp-2
- title: Corporate LDAP user registry
realm: provider/corporate-ldapO valor title deve permitir que você determine qual
provedor de identidade usar; será possível, então, copiar o parâmetro --realm correspondente
diretamente do valor realm exibido. Para todos os provedores de identidade que o administrador criou após a instalação do API Connect , os nomes são determinados no momento da criação. O Registro do usuário local do API Manager padrão
para efetuar login como um membro de uma organização do provedor é default-idp-2.Para obter detalhes completos do comando apic login , consulte Efetuando login em um servidor de gerenciamento..
Definindo sua Configuração de Registro OIDC
title: registry_title
integration_url: oidc_integration_url
case_sensitive: case_sensitivity_setting
email_required: true_or_false
email_unique_if_exist: true_or_false
configuration:
client_id: 'app_client_id'
client_secret: 'my-client-secret'
provider_type: oidc_provider_typeem que:- registry_title é o título descritivo escolhido para o registro do usuário.
- oidc_integration_url é o URL de integração do OIDC em sua configuração API Connect. É possível determinar a URL de integração do OIDC usando o comando da CLI
a seguir:
apic integrations:list --server mgmt_endpoint_url --subcollection user-registry - case_sensitivity_setting determina se o seu registro do usuário faz
distinção entre maiúsculas e minúsculas. Os valores válidos são:
truefalse
- Configure
case_sensitivecomotrueapenas se o provedor OIDC de backend suportar distinção entre maiúsculas e minúsculas. - Configure
case_sensitivecomofalsese o provedor OIDC de back-end não suportar distinção entre maiúsculas e minúsculas.
Nota: depois que pelo menos um usuário tiver sido incluído no registro, não será possível alterar essa configuração - email_required determina se um endereço de e-mail é necessário como parte de um processo de integração do usuário Os valores válidos são:
truefalse
true, o provedor de identidade de origem deverá fornecer o endereço de e-mail como parte do processo de autenticação durante a integração.Observação: um endereço de e-mail não é exigido por padrão para a integração com o Cloud Manager ou o API Manager, mas é exigido para a integração com o Portal do desenvolvedor. - email_unique_if_exist determina se os endereços de email devem ser exclusivos dentro do registro do usuário Os valores válidos são:
truefalse
Observação: cada conta no Portal do desenvolvedor, inclusive em registros de usuários diferentes para o mesmo site, deve ter um endereço de e-mail exclusivo, incluindo a conta de administrador do site. - app_client_id é o ID do cliente do aplicativo que está registrado com o servidor OIDC e deve estar no formato de sequência.
- my-client-secret é o segredo do cliente do aplicativo que está registrado com o servidor OIDC e deve estar no formato de sequência.
- oidc_provider_type é o tipo de provedor OIDC; especifique um dos valores
a seguir:
facebookgithubgooglelinkedinslacktwitterwindows_livestandardNota:- Use o tipo de provedor
twitterse seu provedor OIDC for X (anteriormente conhecido como Twitter). - Use o tipo de provedor
standardpara qualquer provedor OIDC que esteja em conformidade com o padrão OIDC.Se o tipo de provedor éstandard, deve-se incluir as propriedades adicionais a seguir na seçãoconfigurationdo seu arquivo YAML:
em que:authorization_endpoint: 'oidc_auth_endpoint' token_endpoint: endpoint: 'oidc_token_endpoint'- oidc_auth_endpoint é o terminal de autorização no servidor OIDC e deve estar no formato de sequência.
- oidc_token_endpoint é o terminal do token no servidor OIDC e deve estar no formato de sequência.
- Use o tipo de provedor
Configurações do OIDC padrão
Para cada tipo de provedor OIDC, o API Connect assume uma configuração padrão, mas é possível substituir as propriedades de configuração padrão em seu arquivo YAML.
O API Connect faz o melhor esforço para atualizar terminais para os tipos de registro do usuário OIDC conhecidos. No entanto, o provedor OIDC pode mudar o terminal a qualquer momento. É responsabilidade do cliente confirmar se os terminais fornecidos pelo API Connect são suportados pelo provedor OIDC e atualizar a configuração do OIDC conforme necessário.
As configurações padrão são as seguintes:
Criando seu registro do usuário do OIDC
apic user-registries:create --server mgmt_endpoint_url --org organization_name oidc_config_fileem que:- mgmt_endpoint_url é a URL de terminal da API da plataforma.
- organization_name é o valor da propriedade
namede sua organização do provedor. - oidc_config_file é o nome do arquivo YAML que define a configuração de seu registro do usuário do OIDC.
registry_name registry_urlPor
padrão, o registry_name é derivado da propriedade title no
arquivo YAML de configuração, mas é possível substituir isso incluindo uma propriedade name
no arquivo. O registry_url é um URL interno que o site API Connect atribui ao registro.apic user-registries:get --server mgmt_endpoint_url --org organization_name registry_name --output -O
valor oidc_redirect_uri necessário está na seção consumer:; por
exemplo:consumer:
oidc_redirect_uri: https://consumer.mycompany.com/consumer-api/oauth2/redirectAtivando seu registro do OIDC em um Catálogo
Para obter detalhes de todos os comandos apic user-registries e apic
configured-catalog-user-registries , consulte a documentação de referência da CLI do kit de ferramentas.
Você também pode concluir as operações descritas neste tópico usando as APIs REST do site API Connect ; consulte a documentação da API REST do site API Connect .