Plik konfiguracji biblioteki uwierzytelniania firmy Microsoft dla systemu Android
Biblioteka Microsoft Authentication Library (MSAL) systemu Android jest dostarczana z domyślnym plikiem JSON konfiguracji, który można dostosować, aby zdefiniować zachowanie publicznej aplikacji klienckiej dla takich elementów jak urząd domyślny, którego będziesz używać, itd.
Ten artykuł pomoże Zrozumieć różne ustawienia w pliku konfiguracji i jak określić plik konfiguracji do użycia w aplikacji opartej na biblioteki MSAL.
Ustawienia konfiguracji
Ustawienia ogólne
Właściwości | Typ danych | Wymagania | Uwagi |
---|---|---|---|
client_id |
String | Tak | Identyfikator klienta aplikacji ze strony rejestracji aplikacji |
redirect_uri |
String | Tak | Identyfikator URI przekierowania aplikacji ze strony rejestracji aplikacji |
broker_redirect_uri_registered |
Wartość logiczna | Nie. | Możliwe wartości: true , false |
authorities |
Urząd listy<> | Nie. | Lista urzędów, których potrzebuje Twoja aplikacja |
authorization_user_agent |
AuthorizationAgent (wyliczenie) | Nie. | Możliwe wartości: WEBVIEW , BROWSER |
http |
HttpConfiguration | Nie. | Konfigurowanie HttpUrlConnection connect_timeout i read_timeout |
logging |
Konfiguracja rejestrowania | Nie. | Określa poziom szczegółów rejestrowania. Opcjonalne konfiguracje obejmują: pii_enabled , który przyjmuje wartość logiczną i log_level , która przyjmuje ERROR wartości , , WARNING , INFO lub VERBOSE . |
client_id
Identyfikator klienta lub identyfikator aplikacji, który został utworzony podczas rejestrowania aplikacji.
redirect_uri
Identyfikator URI przekierowania zarejestrowany podczas rejestrowania aplikacji. Jeśli identyfikator URI przekierowania to aplikacja brokera, zobacz Identyfikator URI przekierowania dla publicznych aplikacji klienckich , aby upewnić się, że używasz poprawnego formatu identyfikatora URI przekierowania dla aplikacji brokera.
broker_redirect_uri_registered
Jeśli chcesz użyć uwierzytelniania obsługiwanego przez brokera, właściwość musi być ustawiona broker_redirect_uri_registered
na true
wartość . W scenariuszu uwierzytelniania obsługiwanego przez brokera, jeśli aplikacja nie ma poprawnego formatu, aby komunikować się z brokerem zgodnie z opisem w temacie Identyfikator URI przekierowania dla publicznych aplikacji klienckich, aplikacja weryfikuje identyfikator URI przekierowania i zgłasza wyjątek podczas uruchamiania.
władze
Lista władz, które są znane i zaufane przez Ciebie. Oprócz wymienionych tutaj urzędów biblioteka MSAL wysyła również zapytanie do firmy Microsoft o uzyskanie listy chmur i urzędów znanych firmie Microsoft. Na tej liście urzędów określ typ urzędu i wszelkie dodatkowe parametry opcjonalne, takie jak "audience"
, które powinny być zgodne z odbiorcami aplikacji na podstawie rejestracji aplikacji. Poniżej przedstawiono przykładową listę urzędów:
// Example AzureAD and Personal Microsoft Account
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
},
"default": true // Indicates that this is the default to use if not provided as part of the acquireToken call
},
// Example AzureAD My Organization
{
"type": "AAD",
"audience": {
"type": "AzureADMyOrg",
"tenant_id": "contoso.com" // Provide your specific tenant ID here
}
},
// Example AzureAD Multiple Organizations
{
"type": "AAD",
"audience": {
"type": "AzureADMultipleOrgs"
}
},
//Example PersonalMicrosoftAccount
{
"type": "AAD",
"audience": {
"type": "PersonalMicrosoftAccount"
}
}
Mapowanie urzędu i odbiorców firmy Microsoft na Platforma tożsamości Microsoft punktów końcowych
Typ | Odbiorcy | Identyfikator dzierżawy | Authority_Url | Wynikowy punkt końcowy | Uwagi |
---|---|---|---|---|---|
Microsoft Entra ID | AzureADandPersonalMicrosoftAccount | https://login.microsoftonline.com/common |
common to alias dzierżawy, w którym znajduje się konto. Na przykład określona dzierżawa Firmy Microsoft lub system kont Microsoft. |
||
Microsoft Entra ID | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Tylko konta obecne w contoso.com mogą uzyskać token. Wszystkie zweryfikowane domeny lub identyfikator GUID dzierżawy mogą być używane jako identyfikator dzierżawy. | |
Microsoft Entra ID | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
Z tym punktem końcowym mogą być używane tylko konta Microsoft Entra. Konta Microsoft mogą być członkami organizacji. Aby uzyskać token przy użyciu konta Microsoft dla zasobu w organizacji, określ dzierżawę organizacyjną, z której chcesz uzyskać token. | ||
Microsoft Entra ID | PersonalMicrosoftAccount | https://login.microsoftonline.com/consumers |
Tylko konta Microsoft mogą używać tego punktu końcowego. | ||
B2C | Zobacz wynikowy punkt końcowy | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Tylko konta obecne w dzierżawie contoso.onmicrosoft.com mogą uzyskać token. W tym przykładzie zasady B2C są częścią ścieżki adresu URL urzędu. |
Uwaga
Nie można włączyć i wyłączyć walidacji urzędu w usłudze MSAL.
Władze są dla Ciebie znane jako deweloper określone za pośrednictwem konfiguracji lub znane firmie Microsoft za pośrednictwem metadanych.
Jeśli biblioteka MSAL odbiera żądanie tokenu do nieznanego urzędu, wynik MsalClientException
typu UnknownAuthority
.
Uwierzytelnianie obsługiwane przez brokera nie działa w przypadku usługi Azure AD B2C.
Właściwości urzędu
Właściwości | Typ danych | Wymagania | Uwagi |
---|---|---|---|
type |
String | Tak | Dubluje odbiorców lub konto, które wpisze cele aplikacji. Możliwe wartości: AAD , B2C |
audience |
Objekt | Nie. | Stosuje się tylko wtedy, gdy type=AAD . Określa tożsamość docelową aplikacji. Użyj wartości z rejestracji aplikacji |
authority_url |
String | Tak | Wymagane tylko wtedy, gdy type=B2C . Opcjonalnie dla type=AAD . Określa adres URL urzędu lub zasady, których aplikacja powinna używać |
default |
boolean | Tak | Jeden "default":true jest wymagany, gdy określono co najmniej jeden organ. |
Właściwości odbiorców
Właściwości | Typ danych | Wymagania | Uwagi |
---|---|---|---|
type |
String | Tak | Określa odbiorców, dla których aplikacja ma być docelowa. Możliwe wartości: AzureADandPersonalMicrosoftAccount , , PersonalMicrosoftAccount , AzureADMultipleOrgs AzureADMyOrg |
tenant_id |
String | Tak | Wymagane tylko wtedy, gdy "type":"AzureADMyOrg" . Opcjonalnie dla innych type wartości. Może to być domena dzierżawy, taka jak contoso.com , lub identyfikator dzierżawy, taki jak aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Wskazuje, czy używać osadzonego widoku internetowego, czy domyślnej przeglądarki na urządzeniu podczas logowania się do konta lub autoryzowania dostępu do zasobu.
Możliwe wartości:
WEBVIEW
: Użyj osadzonego widoku internetowego.BROWSER
: używa domyślnej przeglądarki na urządzeniu.
multiple_clouds_supported
W przypadku klientów obsługujących wiele chmur krajowych określ wartość true
. Platforma tożsamości Microsoft następnie automatycznie przekierowuje do właściwej chmury krajowej podczas autoryzacji i realizacji tokenu. Możesz określić chmurę krajową konta zalogowanego, sprawdzając urząd skojarzony z usługą AuthenticationResult
. Należy pamiętać, że element AuthenticationResult
nie udostępnia adresu punktu końcowego specyficznego dla chmury krajowej zasobu, dla którego żądasz tokenu.
broker_redirect_uri_registered
Wartość logiczna wskazująca, czy używasz identyfikatora URI przekierowania brokera tożsamości firmy Microsoft zgodnego z brokerem. Ustaw wartość na false
, jeśli nie chcesz używać brokera w aplikacji.
Jeśli używasz urzędu entra firmy Microsoft z grupą odbiorców ustawioną na "MicrosoftPersonalAccount"
wartość , broker nie będzie używany.
http
Skonfiguruj ustawienia globalne dla limitów czasu HTTP, takich jak:
Właściwości | Typ danych | Wymagania | Uwagi |
---|---|---|---|
connect_timeout |
int | Nie. | Czas w milisekundach |
read_timeout |
int | Nie. | Czas w milisekundach |
rejestrowanie
Do rejestrowania służą następujące ustawienia globalne:
Właściwości | Typ danych | Wymagania | Uwagi |
---|---|---|---|
pii_enabled |
boolean | Nie. | Czy emitować dane osobowe |
log_level |
string | Nie | Które komunikaty dziennika są rejestrowane w danych wyjściowych. Obsługiwane poziomy dzienników obejmują ERROR ,INFO WARNING i VERBOSE . |
logcat_enabled |
boolean | Nie. | Czy dane wyjściowe mają być rejestrowane jako element cat oprócz interfejsu rejestrowania |
account_mode
Określa, ile kont można używać w aplikacji naraz. Możliwe wartości to:
MULTIPLE
(Ustawienie domyślne)SINGLE
Konstruowanie PublicClientApplication
przy użyciu trybu konta, który nie jest zgodny z tym ustawieniem, spowoduje wyjątek.
Aby uzyskać więcej informacji na temat różnic między pojedynczym i wieloma kontami, zobacz Single and multiple account apps (Pojedyncze i wiele aplikacji kont).
browser_safelist
Lista dozwolonych przeglądarek, które są zgodne z biblioteką MSAL. Te przeglądarki prawidłowo obsługują przekierowania do intencji niestandardowych. Możesz dodać do tej listy. Wartość domyślna jest dostępna w konfiguracji domyślnej pokazanej poniżej. ``
Domyślny plik konfiguracji biblioteki MSAL
Poniżej przedstawiono domyślną konfigurację biblioteki MSAL dostarczaną z biblioteką MSAL. Najnowszą wersję można zobaczyć w witrynie GitHub.
Ta konfiguracja jest uzupełniana przez podane wartości. Podane wartości zastępują wartości domyślne.
{
"authorities": [
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
},
"default": true
}
],
"authorization_user_agent": "DEFAULT",
"multiple_clouds_supported": false,
"broker_redirect_uri_registered": false,
"http": {
"connect_timeout": 10000,
"read_timeout": 30000
},
"logging": {
"pii_enabled": false,
"log_level": "WARNING",
"logcat_enabled": false
},
"shared_device_mode_supported": false,
"account_mode": "MULTIPLE",
"browser_safelist": [
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"aB1cD2eF3gH4iJ5kL6-mN7oP8qR=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "45"
},
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"cD2eF3gH4iJ5kL6mN7-oP8qR9sT=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"eF3gH4iJ5kL6mN7oP8-qR9sT0uV=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"gH4iJ5kL6mN7oP8qR9-sT0uV1wX=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "57"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"iJ5kL6mN7oP8qR9sT0-uV1wX2yZ=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "4.0"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"kL6mN7oP8qR9sT0uV1-wX2yZ3aB=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.cloudmosa.puffinFree",
"browser_signature_hashes": [
"mN7oP8qR9sT0uV1wX2-yZ3aB4dE="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.duckduckgo.mobile.android",
"browser_signature_hashes": [
"S5Av4...jAi4Q=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.explore.web.browser",
"browser_signature_hashes": [
"BzDzB...YHCag=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.ksmobile.cb",
"browser_signature_hashes": [
"lFDYx...7nouw=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.microsoft.emmx",
"browser_signature_hashes": [
"Ivy-R...A6fVQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.opera.browser",
"browser_signature_hashes": [
"FIJ3I...jWJWw=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.opera.mini.native",
"browser_signature_hashes": [
"TOTyH...mmUYQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "mobi.mgeek.TunnyBrowser",
"browser_signature_hashes": [
"RMVoXgjjgyjjmbj4578fcbkyyQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.focus",
"browser_signature_hashes": [
"L72dT...q0oYA=="
],
"browser_use_customTab" : false
}
]
}
Przykładowa podstawowa konfiguracja
W poniższym przykładzie przedstawiono podstawową konfigurację określającą identyfikator klienta, identyfikator URI przekierowania, informację o tym, czy zarejestrowano przekierowanie brokera, oraz listę urzędów.
{
"client_id" : "00001111-aaaa-2222-bbbb-3333cccc4444",
"redirect_uri" : "msauth://com.microsoft.identity.client.sample.local/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D",
"broker_redirect_uri_registered": true,
"authorities" : [
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
}
"default": true
}
]
}
Jak używać pliku konfiguracji
Utwórz plik konfiguracji. Zalecamy utworzenie niestandardowego pliku konfiguracji w programie
res/raw/auth_config.json
. Ale możesz umieścić go w dowolnym miejscu, którego chcesz.Poinformuj bibliotekę MSAL, gdzie szukać konfiguracji podczas konstruowania elementu
PublicClientApplication
. Na przykład://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);