Ir para o conteúdo

Primeiros passos

Conecte um aplicativo ao XID com OIDC Discovery e Hosted Auth.

Ver como Markdown

URLs base

O XID é um provedor de identidade. O domínio da instância é o emissor OIDC, a URL base da API, a URL base do Hosted Auth e a URL base do console. As organizações fornecem política, identidade visual, associação e isolamento de recursos.

Comece lendo /.well-known/openid-configuration no domínio da instância. O documento de descoberta fornece ao aplicativo os endpoints de autorização, token, userinfo, logout e JWKS desse emissor.

Superfície Caminho Uso
Descoberta OIDC /.well-known/openid-configuration Leia os metadados do emissor antes de configurar uma parte confiável.
Autorização /authorize Redirecione usuários para o fluxo unificado do Hosted Auth.
Token /token Troque um código de autorização ou token de atualização.
Informações do usuário /userinfo Leia declarações de um token de acesso válido.
API de gerenciamento /v1/* Gerencie recursos da organização pelo seu servidor.

Integração mínima

  • Crie um aplicativo OIDC e registre valores exatos de URI de redirecionamento.
  • Use o fluxo de código de autorização com PKCE S256 para clientes de navegador e nativos.
  • Valide tokens de ID e tokens de acesso contra o emissor e a URI JWKS.
  • Armazene tokens de atualização no servidor ou em um armazenamento nativo seguro de credenciais.

Solicitação de autorização

sequenceDiagram
  participant Browser
  participant RP
  participant XID
  RP->>Browser: /authorize + PKCE S256
  Browser->>XID: /authorize + PKCE S256
  XID->>Browser: /sign-in
  Browser->>XID: WebAuthn / SSO
  XID->>Browser: code
  Browser->>RP: code
  RP->>XID: /token + PKCE S256
  XID->>RP: ID token + access token
const authorizeUrl = new URL('https://xid.dev/authorize')
authorizeUrl.searchParams.set('client_id', clientId)
authorizeUrl.searchParams.set('redirect_uri', redirectUri)
authorizeUrl.searchParams.set('response_type', 'code')
authorizeUrl.searchParams.set('scope', 'openid profile email')
authorizeUrl.searchParams.set('code_challenge', codeChallenge)
authorizeUrl.searchParams.set('code_challenge_method', 'S256')
Navegação

Digite para pesquisar...

Use as teclas de seta para navegarPressione Enter para selecionarPressione Escape para fechar