Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Problemy z URI przekierowania
MSAL jest domyślnie skonfigurowany do używania uwierzytelniania za pośrednictwem brokera. Aby to zadziałało, musisz utworzyć adres URI przekierowania przy użyciu kluczy podpisywania powiązanych z Twoją aplikacją. Następnie URI przekierowania musi być uwzględnione zarówno w pliku konfiguracji aplikacji, jak i w manifeście Androida. Niestety dla każdego z nich jest wymagane inne kodowanie. Przejdźmy przez krótkie omówienie:
- Pierwszą rzeczą, którą należy wykonać, jest zlokalizowanie kluczy podpisywania dla aplikacji. Zazwyczaj klucze debugowania znajdują się w folderze domowym, w ukrytym folderze o nazwie „.android”, w magazynie kluczy Java o nazwie debug.keystore. Witryna Azure Portal udostępnia przydatne polecenia do generowania podpisu aplikacji w następujący sposób:
- MacOS:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
- Windows:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
OSTRZEŻENIE: Potokowanie wejścia/wyjścia polecenia jest wygodne; jednak może ukrywać błędy. Jeśli na przykład nie zostanie znaleziony plik magazynu kluczy, komunikat o błędzie zostanie przekazany potokiem do programu openssl, a całe polecenie nadal zwróci wynik wyglądający tak, jak można by oczekiwać. W razie wątpliwości wykonaj najpierw pierwsze polecenie osobno, aby upewnić się, że działa.
OSTRZEŻENIE: Zostanie wyświetlony monit o podanie hasła do magazynu kluczy. Hasło do debugowego magazynu kluczy to po prostu "android". Jeśli nie pojawi się monit o podanie hasła, bardzo możliwe, że trzeba uruchomić powyższe fragmenty polecenia osobno, aby upewnić się, że plik magazynu kluczy został odnaleziony.
OSTRZEŻENIE: Jeśli plik keystore znajduje się w innej lokalizacji, należy zastąpić
%HOMEPATH%\.android\debug.keystore(Windows) lub~/.android/debug.keystore(MacOS) ścieżką do pliku keystore.
- Gdy masz już podpis zakodowany w standardzie base64. Można go użyć do skonfigurowania filtru intencji dla aplikacji, aby przeglądarki mogły prawidłowo zwracać kody autoryzacji do aplikacji. Aby filtr intencji był unikatowy na urządzeniu, oprócz podpisu aplikacji dołączono niestandardowy schemat "msauth" i nazwę pakietu. Oto przykład:
//NOTE: the slash before your signature value added to the path attribute
//This uses the base64 encoded signature produced above.
<data android:scheme="msauth"
android:host="com.microsoft.identity.client.sample.local"
android:path="/1wIqXSqBj7w+h11ZifsnqwgyKrY="/>
- Plik konfiguracyjny msal wymaga czegoś nieco innego. Wymaga, aby wartość podpisu była zakodowana w adresie URL, oprócz tego, że została już zakodowana w formacie base64. Oto przykład:
//NOTE that the signature part of the uri has been url encoded. In this example. The "+" character and the "=" character are affected.
"redirect_uri" : "msauth://com.microsoft.identity.client.sample.local/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D",
Wyświetl konfigurację identyfikatora URI przekierowania złożonej aplikacji
Aby ułatwić tworzenie rejestracji aplikacji (lub rozwiązywanie problemów z nią), dodaliśmy funkcję pomocniczą do PublicClientApplication, aby ułatwić konfigurowanie i diagnozowanie problemów z adresem URI przekierowania, a także przekierowania Activity.
Począwszy od biblioteki MSAL 2.0.0, możesz wywołać następującą metodę, aby wyświetlić sugerowaną konfigurację aplikacji.
// From any Activity in your app, call this static method
PublicClientApplication.showExpectedMsalRedirectUriInfo(MyActivity.this);