Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Android-Microsoft Authentication Library (MSAL) (MSAL) enthält eine JSON-Standardkonfigurationsdatei, die Sie anpassen, um das Verhalten Ihrer öffentlichen Client-App für Dinge wie die Standardautorität, die von Ihnen verwendeten Behörden usw. zu definieren.
Dieser Artikel hilft Ihnen, die verschiedenen Einstellungen in der Konfigurationsdatei zu verstehen und die Konfigurationsdatei anzugeben, die in Ihrer MSAL-basierten App verwendet werden soll.
Konfigurationseinstellungen
Allgemeine Einstellungen
| Eigentum | Datentyp | Erforderlich | Hinweise |
|---|---|---|---|
client_id |
String | Ja | Client-ID Ihrer App über die Anwendungsregistrierungsseite |
redirect_uri |
String | Ja | Umleitungs-URI Ihrer App über die Anwendungsregistrierungsseite |
broker_redirect_uri_registered |
Boolean | No | Mögliche Werte: true, false |
authorities |
Autorität auflisten<> | No | Die Liste der Behörden, die Ihre App benötigt |
authorization_user_agent |
AuthorizationAgent (Enumeration) | No | Mögliche Werte: DEFAULT, , BROWSERWEBVIEW |
http |
HttpConfiguration | No | Konfigurieren HttpUrlConnectionconnect_timeout und read_timeout |
logging |
ProtokollierungKonfiguration | No | Gibt die Ebene der Protokollierungsdetails an. Optionale Konfigurationen umfassen: pii_enabled, die einen booleschen Wert akzeptiert und log_level, die ERROR, die , , WARNING, oder INFOVERBOSE. |
client_id
Die Client-ID oder App-ID, die beim Registrieren der Anwendung erstellt wurde.
Weiterleitungs-URI
Der Umleitungs-URI, den Sie beim Registrieren der Anwendung registriert haben. Wenn sich der Umleitungs-URI auf eine Broker-App bezieht, lesen Sie den Umleitungs-URI für öffentliche Client-Apps , um sicherzustellen, dass Sie das richtige Umleitungs-URI-Format für Ihre Broker-App verwenden.
broker_redirect_uri_registered
Wenn Sie die brokerierte Authentifizierung verwenden möchten, muss die broker_redirect_uri_registered Eigenschaft auf .true Wenn sich die Anwendung in einem Szenario mit brokerischer Authentifizierung nicht im richtigen Format befindet, um mit dem Broker zu sprechen, wie unter Umleitungs-URI für öffentliche Client-Apps beschrieben, überprüft die Anwendung Ihren Umleitungs-URI und löst beim Start eine Ausnahme aus.
authorities
Die Liste der Behörden, die von Ihnen bekannt und vertrauenswürdig sind. Zusätzlich zu den hier aufgeführten Behörden fragt MSAL auch Microsoft ab, um eine Liste der Clouds und Behörden zu erhalten, die Microsoft bekannt sind. Geben Sie in dieser Liste der Autoritäten den Typ der Autorität und alle zusätzlichen optionalen Parameter an "audience", z. B. die an die Zielgruppe Ihrer App basierend auf der Registrierung Ihrer App ausgerichtet werden sollen. Es folgt eine Beispielliste der Behörden:
// 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"
}
}
Zuordnen Microsoft Entra Autorität und Zielgruppe zu Microsoft Identity Platform Endpunkten
| Typ | Publikum | Mieter-ID | Authority_Url | Resultierender Endpunkt | Hinweise |
|---|---|---|---|---|---|
| Microsoft Entra ID | Azure AD und persönliches Microsoft-Konto | https://login.microsoftonline.com/common |
common ist ein Mandantalias für den Speicherort des Kontos. Beispielsweise ein bestimmter Microsoft Entra Mandant oder das Microsoft-Konto System. |
||
| Microsoft Entra ID | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Nur Konten, die in contoso.com vorhanden sind, können ein Token abrufen. Jede überprüfte Domäne oder die Mandanten-GUID kann als Mandanten-ID verwendet werden. | |
| Microsoft Entra ID | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
Nur Microsoft Entra Konten können mit diesem Endpunkt verwendet werden. Microsoft Konten können Mitglieder von Organisationen sein. Wenn Sie ein Token mithilfe einer Microsoft-Konto für eine Ressource in einer Organisation abrufen möchten, geben Sie den Organisationsmandanten an, aus dem das Token abgerufen werden soll. | ||
| Microsoft Entra ID | Persönliches Microsoft-Konto | https://login.microsoftonline.com/consumers |
Nur Microsoft Konten können diesen Endpunkt verwenden. | ||
| B2C | Siehe resultierender Endpunkt | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Nur Konten, die im contoso.onmicrosoft.com Mandanten vorhanden sind, können ein Token abrufen. In diesem Beispiel ist die B2C-Richtlinie Teil des Autoritäts-URL-Pfads. |
Note
Die Autoritätsüberprüfung kann in MSAL nicht aktiviert und deaktiviert werden.
Behörden sind Ihnen entweder als Entwickler bekannt, wie über die Konfiguration angegeben oder über Metadaten als Microsoft bekannt.
Wenn MSAL eine Anforderung für ein Token an eine unbekannte Autorität empfängt, ergibt sich ein MsalClientException Typergebnis UnknownAuthority .
Die vermittelte Authentifizierung funktioniert nicht für Azure AD B2C.
Autoritätseigenschaften
| Eigentum | Datentyp | Erforderlich | Hinweise |
|---|---|---|---|
type |
String | Ja | Spiegelt die Zielgruppe oder den Kontotyp Ihrer App-Ziele wieder. Mögliche Werte: AAD, B2C |
audience |
Object | No | Gilt nur, wenn type=AAD. Gibt die Identität an, die Ihre App angibt. Verwenden des Werts aus der App-Registrierung |
authority_url |
String | Ja | Nur erforderlich, wenn type=B2C. Optional für type=AAD. Gibt die Autoritäts-URL oder Richtlinie an, die Ihre App verwenden soll |
default |
boolean | Ja | Ein Einzelner "default":true ist erforderlich, wenn eine oder mehrere Behörden angegeben werden. |
Zielgruppeneigenschaften
| Eigentum | Datentyp | Erforderlich | Hinweise |
|---|---|---|---|
type |
String | Ja | Gibt die Zielgruppe an, auf die Ihre App ausgerichtet werden soll. Mögliche Werte: AzureADandPersonalMicrosoftAccount, , PersonalMicrosoftAccount, AzureADMultipleOrgsAzureADMyOrg |
tenant_id |
String | Ja | Nur erforderlich, wenn "type":"AzureADMyOrg". Optional für andere type Werte. Dies kann eine Mandantendomäne wie contoso.comz. B. eine Mandanten-ID oder eine Mandanten-ID sein, z. B. aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Gibt an, ob eine eingebettete Webansicht oder der Standardbrowser auf dem Gerät verwendet werden soll, wenn Sie sich bei einem Konto anmelden oder den Zugriff auf eine Ressource autorisieren.
Mögliche Werte:
-
DEFAULT: Bevorzugt den Systembrowser. Verwendet die eingebettete Webansicht, wenn ein Browser auf dem Gerät nicht verfügbar ist. -
WEBVIEW: Verwenden Sie die eingebettete Webansicht. -
BROWSER: Verwendet den Standardbrowser auf dem Gerät.
multiple_clouds_supported
Geben Sie für Clients, die mehrere nationale Clouds unterstützen, an true. Die Microsoft Identity Platform leitet dann während der Autorisierung und Tokeneinlösung automatisch zur richtigen nationalen Cloud um. Sie können die nationale Cloud des angemeldeten Kontos ermitteln, indem Sie die mit der AuthenticationResult. Beachten Sie, dass die AuthenticationResult nationale cloudspezifische Endpunktadresse der Ressource, für die Sie ein Token anfordern, nicht bereitstellt.
broker_redirect_uri_registered
Ein boolescher Wert, der angibt, ob Sie einen Microsoft identitätsbrokerkompatiblen Umleitungs-URI verwenden. Legen Sie diesen false Wert fest, wenn Sie den Broker nicht in Ihrer App verwenden möchten.
Wenn Sie die Microsoft Entra Authority für Zielgruppe verwenden"MicrosoftPersonalAccount", wird der Broker nicht verwendet.
http
Konfigurieren sie globale Einstellungen für HTTP-Timeouts, z. B.:
| Eigentum | Datentyp | Erforderlich | Hinweise |
|---|---|---|---|
connect_timeout |
int | No | Zeit in Millisekunden |
read_timeout |
int | No | Zeit in Millisekunden |
logging
Die folgenden globalen Einstellungen sind für die Protokollierung vorgesehen:
| Eigentum | Datentyp | Erforderlich | Hinweise |
|---|---|---|---|
pii_enabled |
boolean | No | Gibt an, ob personenbezogene Daten ausgegeben werden sollen. |
log_level |
string | No | Welche Protokollnachrichten ausgegeben werden sollen. Unterstützte Protokollebenen umfassen ERROR,WARNING,,INFO und VERBOSE. |
logcat_enabled |
boolean | No | Gibt an, ob zusätzlich zur Protokollierungsschnittstelle die Katze protokolliert werden soll |
account_mode
Gibt an, wie viele Konten in Ihrer App gleichzeitig verwendet werden können. Mögliche Werte sind:
-
MULTIPLE(Standard) SINGLE
Das Erstellen eines PublicClientApplication Kontomodus, der nicht mit dieser Einstellung übereinstimmt, führt zu einer Ausnahme.
Weitere Informationen zu den Unterschieden zwischen einzelnen und mehreren Konten finden Sie unter Einzel- und Mehrere Konto-Apps.
browser_safelist
Eine Zulassungsliste von Browsern, die mit MSAL kompatibel sind. Diese Browser behandeln Umleitungen ordnungsgemäß zu benutzerdefinierten Absichten. Sie können dieser Liste hinzufügen. Der Standardwert wird in der unten gezeigten Standardkonfiguration bereitgestellt. ``
Die MSAL-Standardkonfigurationsdatei
Die standardmäßige MSAL-Konfiguration, die mit MSAL ausgeliefert wird, wird unten angezeigt. Sie können die neueste Version auf GitHub sehen.
Diese Konfiguration wird durch von Ihnen bereitgestellte Werte ergänzt. Die von Ihnen bereitgestellten Werte setzen die Standardwerte außer Kraft.
{
"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": [
"7fmdu...2NDJg=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "45"
},
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"7fmdu...2NDJg=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"2gCe6...idpVQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"2gCe6...idpVQ=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "57"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"ABi2f...4O1Xgg=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "4.0"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"ABi2f...O1Xgg=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.cloudmosa.puffinFree",
"browser_signature_hashes": [
"1WqG8...Mn8Ag=="
],
"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": [
"RMVoX...bkyyQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.focus",
"browser_signature_hashes": [
"L72dT...q0oYA=="
],
"browser_use_customTab" : false
}
]
}
Beispiel für eine einfache Konfiguration
Das folgende Beispiel veranschaulicht eine grundlegende Konfiguration, die die Client-ID, den Umleitungs-URI angibt, ob eine Brokerumleitung registriert ist, und eine Liste der Behörden.
{
"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
}
]
}
Verwenden einer Konfigurationsdatei
Erstellen Sie eine Konfigurationsdatei. Es wird empfohlen, ihre benutzerdefinierte Konfigurationsdatei in
res/raw/auth_config.json. Aber Sie können es überall platzieren, was Sie wünschen.Teilen Sie MSAL mit, wo Sie beim Erstellen der
PublicClientApplicationKonfiguration nach Ihrer Konfiguration suchen sollen. Beispiel://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);