Registro do cliente dinâmico
O Registro de Cliente Dinâmico permite que a Parte Dependente (RP) do OpenID Connect (OIDC) se registre com o OpenID Connect Provider (OP).
Antes de começar
O Registro Dinâmico de Clientes baseia-se nas especificações do Registro Dinâmico de Clientes do OpenID Connect 1.0.
Novos aplicativos OIDC são criados por um administrador de locatários ou por um usuário com acesso administrativo ao locatário. Agora, um cliente da API com a autorização certa também pode criar um aplicativo OIDC por meio de um terminal de registro de cliente dinâmico. O aplicativo criado é um "aplicativo personalizado" com o método de login definido como " OpenID Connect".
O terminal de registro do cliente dinâmico está localizado aqui: https://{{tenant}}/v1.0/endpoint/default/client_registration.
Considere utilizar o novo ponto de extremidade de registro dinâmico de clientes, caso ele atenda às suas necessidades. Para obter mais informações, consulte o artigo “Registro dinâmico de clientes com o novo provedor OpenID Connect ”.
Sobre esta tarefa
Para registrar dinamicamente um cliente, obtenha um token de acesso inicial e, em seguida, registre o novo aplicativo OIDC usando a API de registro.
Antes de registrar um novo cliente, verifique as configurações de registro dinâmico de clientes.Configurações dinâmicas de registro de clientes
As configurações de registro dinâmico de clientes podem ser definidas para estabelecer os valores padrão para o registro dinâmico de clientes. Consulte “Configuração das opções de registro dinâmico de clientes OIDC ”.
As configurações relevantes estão descritas na tabela a seguir.
| Campo | Descrição |
|---|---|
| Tipos de concessão | Os tipos de concessão a serem utilizados caso não sejam especificados na carga útil do registro dinâmico do cliente. Os tipos de autorização suportados são "Código de autorização", "Implícita", "Senha", "Fluxo de dispositivo", "JWT bearer" e "Token de atualização". |
| Solicitações de token de ID | Por padrão, são solicitadas informações sobre o token de identificação e o usuário, caso não sejam especificadas na carga útil do registro dinâmico do cliente. |
| Reivindicações de token | As reivindicações padrão para introspecção e token de acesso JWT, caso não sejam especificadas na carga útil do registro dinâmico do cliente. |
| Tipo de token de acesso | O tipo de token de acesso a ser gerado. Os valores válidos são 'padrão' e 'JWT'. |
| Algoritmo de assinatura do token de ID | O algoritmo utilizado para assinar tokens de identificação, caso não seja especificado na carga útil do registro dinâmico do cliente. |
| Consentimento do usuário | Selecione se deseja solicitar o consentimento do usuário caso isso não esteja especificado na carga de dados do registro dinâmico do cliente. |
| Tempo de vida do token de acesso | A validade do token de acesso em segundos. Máximo 2147483647, mínimo 1. |
| Tempo de vida do token de atualização | O tempo de validade do token de atualização em segundos. Máximo 2147483647, mínimo 1. |
| Aplicar a verificação PKCE | Selecione se deseja aplicar o PKCE caso isso não esteja especificado na carga útil do registro dinâmico do cliente. |
| Autorizar a todos os usuários | Verifique se todos os usuários têm permissão para usar este cliente, caso isso não esteja especificado na carga útil do registro dinâmico do cliente. |
| Permitir credenciais customizadas do cliente | Determina se credenciais personalizadas do cliente são permitidas. Se definido como "false", o ID do cliente e o segredo não poderão ser especificados na carga útil do registro dinâmico do cliente. |
As seções "Declaração de software", "Solicitar autorização" e "Token de acesso de registro" das configurações não são relevantes para este provedor do OpenID Connect.
Adquirir o token de acesso inicial
Para acessar um terminal de registro de cliente dinâmico, use um token de acesso com a autorização Manage
OIDC client registration dynamically.
Crie um Cliente de API com a autorização Manage OIDC client registration dynamically. Para criar o cliente da API, consulte “Criação de clientes da API ”.
Depois que o Cliente da API for criado, use o fluxo client_credenciais para obter o token de acesso. Consulte o exemplo a seguir:
curl -ki -v https://{{tenant}}/v1.0/endpoint/default/`token -d "grant_type=client_credentials&client_id=<clientId>&client_secret=<clientSecret>"
Registrar uma nova solicitação usando a API de registro
Ao usar o token de acesso produzido na seção anterior, é possível criar um novo aplicativo OIDC.
A tabela a seguir mostra a lista de metadados do cliente que são suportados atualmente.
| Nome de metadados | Descrição de metadados | Opcional | Valores válidos |
|---|---|---|---|
| client_name | Nome do Aplicativo | true | sequência |
| ID de cliente | O ID do cliente será gerado automaticamente se ele não for fornecido. | true | sequência |
| client_secret | O segredo do cliente será gerado automaticamente se ele não for fornecido. | true | sequência |
| redirect_uris | Lista de URIs de redirecionamento. | false | Lista de URI de sequência |
| grant_types | Matriz de tipos de concessão que o aplicativo pode usar. | true | “authorization_code”, “implicit”, “password”, “urn:ietf:params:oauth:grant-type:device_code”, “urn:ietf:params:oauth:grant-type:jwt-bearer” e “refresh_token” |
| id_token_signed_response_alg | Algoritmo de assinatura de token. | true | 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'ES256', 'ES384', 'ES512', 'PS256', 'PS384', 'PS512' |
| all_users_entitled | Configure como true se todos os usuários tiverem autorização para usar este aplicativo. | true | true ou false |
| jwks_uri | URL do documento do JSON Web Key Set do Client. | true | URL |
| consent_action | Solicitação de consentimento do usuário. | true | ‘never_prompt’ ou ‘always_prompt’ |
| enforce_pkce | Cumprir o uso do PKCE. | true | true ou false |
| id_token_claims | Lista de solicitações para informações de id_token e do usuário. | true | lista de sequência |
| token_claims | Lista de solicitações para introspecção e token de acesso JWT. | true | lista de sequência |
| initiate_login_uri | A URL para iniciar o login. | true | URL |
| token_endpoint_auth_method | Método de autenticação de cliente para o terminal de token. | true | 'default', 'client_secret_basic', 'client_secret_post', 'client_secret_jwt', 'private_key_jwt' |
Exemplo para registro de um novo aplicativo
curl -ki -H "Authorization: bearer <access-token>" -H "Content-Type:application/json" -X POST https://{{tenant}}/v1.0/endpoint/default/client_registration --data-binary '{"redirect_uris":["https://www.redirect.com"],"client_name":"MyApplication"}'respostas{
"grant_types": [
"authorization_code"
],
"client_secret_expires_at": "0",
"registration_client_uri": "https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>",
"client_secret": "<client_secret>",
"redirect_uris": [
"https://www.redirect.com"
],
"client_id_issued_at": "1586933118",
"client_name": "MyApplication",
"registration_access_token": "<access_token>",
"client_id": "<clientId>",
"id_token_signed_response_alg": "RS256"
}Configuração adicional do aplicativo
Após a criação do aplicativo, há mais opções que você pode configurar, como mapeamento de atributos, política de acesso, fontes de identidade, usuários autorizados e outras. Para configurar essas opções, consulte Configurando a conexão única no provedor do OpenID Connect.
A opção para atualizar usando a API de registro não é suportada.
Ler aplicativo OIDC usando a API de registro
curl -ki -H "Authorization: bearer <registration-access-token>" https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>Excluir aplicativo OIDC usando a API de registro
A API de registro também fornece uma maneira de excluir o aplicativo OIDC.
curl -ki -H "Authorization: bearer <registration-access-token>" -X DELETE https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>
Token de acesso ao registro expirado
Se o token de acesso do registro expirar, adquira um novo token de acesso. Consulte “Obter o token de acesso inicial ”.