Aplicações de cliente

Instanciar uma aplicação

Pre-requisites

Antes de instanciar a sua aplicação com MSAL4J:

  1. Compreenda os tipos de aplicações Cliente disponíveis - Aplicações Pública e Cliente Confidencial.
  2. Terá de registar a candidatura com o Microsoft Entra ID. Assim, saberá:
    • O seu clientID (uma cadeia de caracteres que representa um GUID)
    • O URL do fornecedor de identidade (denominado instância) e o público de início de sessão da sua aplicação. Estes dois parâmetros são coletivamente conhecidos como a autoridade.
    • Possivelmente TenantID no caso de estar a desenvolver uma aplicação empresarial (apenas para a sua organização, também designada por aplicação de inquilino único)
    • No caso de ser uma aplicação cliente confidencial, o seu segredo de aplicação (clientSecret string) ou certificado
    • Para aplicações web, também terá de definir o redirectUri, para onde o fornecedor de identidade contactará novamente a sua aplicação com os tokens de segurança.

Instanciar uma aplicação de Cliente Público

String PUBLIC_CLIENT_ID;
String AUTHORITY;

PublicClientApplication app = 
    PublicClientApplication
        .builder(PUBLIC_CLIENT_ID)
        .authority(AUTHORITY)
        .build();

Instanciar uma aplicação de Cliente Confidencial

Vai precisar de um segredo ou de um certificado, conforme descrito nas Credenciais do Cliente.

Se tens um segredo:

String PUBLIC_CLIENT_ID;
String AUTHORITY;
String CLIENT_SECRET;

IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication app = 
    ConfidentialClientApplication
        .builder(PUBLIC_CLIENT_ID, credential)
        .authority(AUTHORITY)
        .build();

Se tiver um certificado:

String PUBLIC_CLIENT_ID;
String AUTHORITY;
PrivateKey PRIVATE_KEY;  
X509Certificate PUBLIC_KEY;

IClientCredential credential = ClientCredentialFactory.createFromCertificate(PRIVATE_KEY, PUBLIC_KEY);
ConfidentialClientApplication app = 
    ConfidentialClientApplication
        .builder(PUBLIC_CLIENT_ID, credential)
        .authority(AUTHORITY)
        .build();