Token de acesso não incluem o acesso de API com MSAL

votos
1

Eu estou usando MSAL para JavaScript em um aplicativo de reagir para autenticar contra Azure AD. Eu sou capaz de autenticar com êxito usuário e obter token de ID e token de acesso. Mas o token de acesso obtido não pode acessar a API que está protegido com Azure AD.

Tudo está configurado achado no lado AD Azure como eu posso usar o token de acesso recuperados para falar com a API usando um aplicativo web núcleo dotnet.

A diferença entre aplicativo núcleo dotnet e reagir aplicativo é o atributo recurso. Não estou certo de como incluir isso no pedido com MSAL.

Meu Reagir cupom:

userAgentApplication = new UserAgentApplication(
    <clientid>,
    <azureAdUrl>,
    this.authCallback,
    { redirectUri: http://localhost:3000/, cacheLocation: localStorage }
  );

  authCallback(errorDesc, token, error, tokenType) {
    if (token) console.log(token);
  }


login() {
    this.userAgentApplication.loginRedirect().then(function(idToken) {

      this.userAgentApplication.acquireTokenSilent().then(
        function(accessToken) {
          console.log('Access Token: ' + accessToken);
        }
      );
    });
  }

Com um aplicativo de núcleo dotnet, estou usando mesmas configurações tanto como URL do configurado no Azure AD aplicativo com uma adição.

.AddOpenIdConnect(o =>
                {
                    ....
                    o.Resource = GUID of the API;
                });

Eu não estou enviando este parâmetro recurso com MSAL.Not certeza de como enviar esse e se isso é que é o problema.

Qualquer ajuda é apreciada.

Publicado 07/11/2018 em 23:46
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

MSAL usa a noção de escopos , e não de recursos. Minha impressão de ler sua pergunta é que este é um API v1 Web (registrado com a lâmina de registro App no portal Azure ? Se esse for o caso, o âmbito para o seu recurso é provavelmente o.Resource + "/ user_impersonation"

se é uma API v2.0 (registrado com apps.dev.microsoft.com ) ou o portal Azure, mas com o registo New Application (Preview), em seguida, o escopo é fornecido no momento da inscrição

Para uma aplicação ASP.NET Núcleo você pode querer ter um olhar para o exemplo a seguir: https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2 , e provavelmente este ramo aspnetcore2-2 -signInAndCallGraph

Respondeu 08/11/2018 em 00:42
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more