Class: OpenIdProvider

@nginstack/engine/lib/oidc/OpenIdProvider~ OpenIdProvider


new OpenIdProvider()

Classe que representa os dados de configuração publicados pelo provedor de identidade.

Members


authorizationEndpoint :string

Endereço utilizado para a autenticação dos usuários.

Type:
  • string

claimsSupported :Array.<string>

Conjunto de declarações suportadas pelo provedor de identidade.

Type:
  • Array.<string>

deviceAuthorizationEndpoint :string

Endereço onde se pode realizar a autorização seguindo o fluxo de autorização de dispositivo.

Type:
  • string

grantTypesSupported :Array.<string>

Fluxos de autorização suportados pelo provedor de identidade.

Type:
  • Array.<string>

idTokenSigningAlgValuesSupported :Array.<string>

Algoritmos suportados para assinatura do ID Token.

Type:
  • Array.<string>

introspectionEndpoint :string

Endereço onde se pode obter informações sobre um token de acesso.

Type:
  • string

issuer :string

Localização ou endereço do emissor.

Type:
  • string

jwks :string

JSON contendo a lista de chaves publicas utilizadas pelo provedor, no formato JWKS.

Type:
  • string

responseModesSupported :Array.<string>

Modos suportados pelo provedor de identidade para o envio das informações na requisição de resposta, enviada para a URL de redirecionamento:

  • 'query': As informações serão incluídas na query string de uma requisição do tipo GET;
  • 'fragment': As informações serão incluídas como um fragmento de uma requisição do tipo GET;
  • 'form_post': As informações serão enviadas no corpo de uma requisição do tipo POST.
Type:
  • Array.<string>

responseTypesSupported :Array.<string>

Informações que o provedor de identidade suporta enviar como resposta. Ao acessar o endereço de autorização, deve-se indicar qual desses tipos de resposta que se deseja receber no acesso redirecionado após uma autenticação bem sucedida.

O tipo de resposta determina o fluxo de autorização que se deseja seguir:

  • 'code': fluxo de código de autorização;
  • 'id_token': fluxo implícito;
  • 'id_token' e 'token': fluxo implícito;
  • 'code' e 'id_token': fluxo híbrido;
  • 'code' e 'token': fluxo híbrido;
  • 'code', 'id_token' e 'token': fluxo híbrido.

Para mais informações consultar a "documentação oficial".

Type:
  • Array.<string>

revocationEndpoint :string

Endereço onde se pode revogar um token de acesso ou token de renovação.

Type:
  • string

scopesSupported :Array.<string>

Escopos suportados pelo provedor de identidade. Os escopos definem as claims que se deseja que o provedor inclua no token JWS de resposta:

  • 'openid': o protocolo OpenID Connect define esse valor de escopo como obrigatório;
  • 'profile': informações como nome, apelido, nome de usuário, gênero, foto, data de nascimento etc;
  • 'email': requer acesso ao email do usuário;
  • 'address': requer acesso ao endereço do usuário;
  • 'phone': requer acesso ao número de telefone do usuário.

Se for utilizado um fluxo de autorização que resulte em um Access Token, os dados solicitados por meio dos escopos estarão disponíveis acessando o userInfoEndpoint. Se for utilizado um fluxo de autorização que resulte em um ID Token, as informações estarão contidas no payload do token.

Para mais informações consultar a documentação oficial.

Type:
  • Array.<string>

tokenEndpoint :string

Endereço utilizado para obter o ID token.

Type:
  • string

userInfoEndpoint :string

Endereço onde se pode obter informações sobre o usuário autenticado.

Type:
  • string

userInfoSigningAlgValuesSupported :Array.<string>

Algoritmos suportados para assinatura do token de informações do usuário autenticado.

Type:
  • Array.<string>

Methods


<static> discover(discoverUri)

Retorna os dados de configuração publicados pelo provedor de identidade.

Parameters:
Name Type Description
discoverUri string

Endereço básico disponibilizado pelo provedor de identidade. Os dados de configuração do provedor serão obtidos no endereço padrão '<discoverUri>/.well-known/openid-configuration'.

Returns:

Objeto literal com os dados de configuração publicados pelo provedor de identidade.

Type
ProviderMetadata

<static> fromConfig(key)

Cria uma instância da classe OpenIdProvider com os dados obtidos a partir do cadastro do provedor de identidade.

Será gerado um erro caso o provedor de identidade informado tenha sido desativado pelo administrador do sistema.

Parameters:
Name Type Description
key DBKey

Chave de um dos provedores de identidade cadastrados.

Returns:

Instância da classe do provedor de identidade informado.

Type
OpenIdProvider

<static> signSupportAccountProvider(ds, privateKey)

Assina digitalmente um provedor de identidade e preenche o DataSet com a assinatura.

Parameters:
Name Type Description
ds DataSet

DataSet localizado em um registro de provedor de identidade.

privateKey string

Chave privada para realizar assinatura.

Returns:

Assinatura digital.

Type
string

<static> verifySupportAccountProvider(ds)

Verifica a assinatura digital dos dados de um provedor de identidade.

Parameters:
Name Type Description
ds DataSet

DataSet localizado em um registro de provedor de identidade.

Returns:

Verdadeiro se a assinatura é válida, falso caso contrário.

Type
boolean

getSigningKey(kid)

Retorna um CryptoPKey contendo a chave pública do provedor de identidade, importada a partir do JWK cujo identificador kid corresponde ao valor indicado no parâmetro.

Parameters:
Name Type Description
kid string

Identificador da chave JWK.

Returns:

Objeto CryptoPKey contendo a chave pública do provedor.

Type
CryptoPKey

jwk(kid)

Retorna o JSON da chave JWK, cujo identificador kid corresponde ao valor indicado no parâmetro.

Parameters:
Name Type Description
kid string

Identificador da chave.

Returns:

JSON da chave JWK.

Type
string

newOAuth2Client( [options])

Obtém uma instância da classe 'OAuth2Client' configurada com os dados do provedor de identidade.

Parameters:
Name Type Argument Description
options module:@nginstack/engine/lib/oauth2/OAuth2Client~OAuth2ClientConstructorOptions <optional>

Parâmetros de construção da instância do cliente.

Returns:

Objeto cliente do protocolo OAuth2.

Type
module:@nginstack/engine/lib/oauth2/OAuth2Client~OAuth2Client

newOpenIdClient( [options])

Obtém uma instância da classe 'OpenIdClient' configurada com os dados do provedor de identidade.

Parameters:
Name Type Argument Description
options module:@nginstack/engine/lib/oidc/OpenIdClient~OpenIdClientConstructorOptions <optional>

Parâmetros de construção da instância do cliente.

Returns:

Objeto cliente do protocolo OpenID Connect.

Type
module:@nginstack/engine/lib/oidc/OpenIdClient~OpenIdClient