/ / redirect_uri zawierający ciąg zapytania nie pasuje do skonfigurowanego adresu URL przekierowania - oauth, office365, katalog-azure-active

redirect_uri zawierający ciąg zapytania nie pasuje do skonfigurowanego adresu URL przekierowania - oauth, office365, katalog-azure-active

Jasne jest, że to pytanie dotyczy wersji 2.0 interfejsu Azure AD API.

Skonfigurowałem dozwolony adres URL przekierowania w portalu rejestracji aplikacji jako http://localhost:3000 (Próbowałem też http://localhost:3000/_oauth/azureAd).

Jednak w przypadku żądania kodu autoryzacji podanie redirect_uri zawierającego ciąg zapytania powoduje niepowodzenie uwierzytelnienia z błędem: The reply address "http://localhost:3000/_oauth/azureAd?close" does not match the reply addresses configured for the application.

Wygląda na to, że ciągi zapytań nie sąignorowane przy dopasowywaniu poprawnego adresu URL przekierowania. Jest to problem, ponieważ portal rejestracji aplikacji nie pozwolił ci na wprowadzenie adresów URL przekierowań z ciągami zapytań!

Jestem w trakcie pisania pakietu kont dla Meteor w celu obsługi wersji 2.0 Azure AD i jest to warunek, aby pakiety Meteor OAuth działały poprawnie.

Idealne rozwiązanie, które, jak sobie wyobrażam, polega na ignorowaniu ciągów zapytań podczas sprawdzania poprawności adresu URL przekierowania

Odpowiedzi:

1 dla odpowiedzi № 1

Portal rejestracji aplikacji nie obsługuje łańcucha zapytania i nieprawidłowych znaków specjalnych.

W celu obejścia tego problemu można utworzyć kilka adresów URL przekierowań zamiast używać ciągu zapytania. Ale czy mógłbyś podzielić się powodem, dla którego musisz użyć ciągu zapytania w adresach URL?


1 dla odpowiedzi nr 2

Możesz uniknąć dołączania Meteor ?close do redirect_uri, określając opcję konfiguracji loginStyle. Widzieć: http://docs.meteor.com/api/accounts.html#Meteor-loginWith

Wyjaśniono tutaj (fragment poniżej): https://github.com/meteor/meteor/blob/abd574f38008b45f5e2a6bc322b10bcdde44763a/packages/oauth/oauth_common.js#L3-L8

  // XXX COMPAT WITH 0.9.0
// The redirect URI used to have a "?close" query argument.  We
// detect whether we need to be backwards compatible by checking for
// the absence of the `loginStyle` field, which wasn"t used in the
// code which had the "?close" argument.