2017-04-14 1 views
0

Ich entwickle eine native App, die die Office 365-Gruppen anzeigen muss, zu denen der Benutzer gehört. Dazu rufe ich die Microsoft Graph API auf, die eine Authentifizierung erfordert. Ich benutze die ADAL-Bibliothek.Wie kann ich meine Azure AD-App von einem anderen Mandanten verwenden?

Die erforderlichen Berechtigungen erfordern die Zustimmung des Administrators. Alles funktioniert gut für Benutzer von meinem Mandanten, aber wenn ich versuche, mit einem Konto eines anderen Mandanten zu authentifizieren, funktioniert es nicht. Es hält was dieses Ergebnis:

Korrelations-ID: 9780ed24-9d24-4604-b8bf-28a02c2ea580

Zeitstempel: 2017.04.14 12: 05: 45Z

AADSTS70001: Anwendung mit der Kennung ' xxxxxxxx-xxx-xxx-xxxx-xxxxxxxxxxxx‘wurde nicht im Verzeichnis gefunden XXXXXXX.onmicrosoft.com

auch wenn ich ein Admin-Konto bei der ersten Verbindung verwenden. Ich werde nie um Zustimmung gebeten und die App ist nicht auf dem anderen Mieter registriert.


Die App ist als Native registriert, damit es Multi-Tenant sein sollte und ich pass "/ common" als Mieter in der Behörde.

Ich habe auch versucht, eine App mit den gleichen Spezifikationen auf dem anderen Mieter zu registrieren, gab Admin Zustimmung über die Berechtigungen und es hat auch funktioniert.

Hier ist, wie ich das Zugriffstoken abzurufen:

private static string GetAccessToken() 
    { 
     AuthenticationContext authContext = new AuthenticationContext(authority); 

     AuthenticationResult authResult = authContext.AcquireToken(graphResource, clientID, redirectURI, PromptBehavior.RefreshSession); 
     var accessToken = authResult.AccessToken; 
     return accessToken; 
    } 

Ist es ein Problem innerhalb des Codes Die Parameter? Benötigen die anderen Mieter ein spezielles "Azure-Abonnement", das mir nicht bekannt ist?

Kurz gesagt: Wie bekomme ich es für andere Mieter arbeiten?

bearbeiten: Ich habe versucht, manuell auf die Anforderung der „prompt = admin_consent“ hinzuzufügen, wie folgt aus:

AuthenticationResult authResult = authContext.AcquireToken(graphResource, clientID, redirectURI,PromptBehavior.RefreshSession, UserIdentifier.Any, "prompt=admin_consent"); 

Aber es löst eine Fehlermeldung, dass es eine „Duplicate Abfrageparameter‚ist prompt 'in extraQueryParameters "

+0

Können Sie die CorrelationId und Timestamp von der Fehlermeldung enthalten? –

+0

@PhilippeSignoret Ja, fertig. – Patsuan

+0

Wie haben Sie die native Client-App erstellt? Welche Schnittstelle? –

Antwort

3

Dies ist ein bekanntes Problem im neuen Azure-Portal bei der Registrierung von nativen Clientanwendungen.

Diese werden derzeit (ab dem 14.04.2017) als Single-Tenant-Anwendungen erstellt. Da das Azure-Portal den "mandantenübergreifenden" Schalter für native Client-Anwendungen nicht verfügbar macht, müssen Sie das App-Manifest aktualisieren oder dazu Azure AD PowerShell verwenden.

Erstellen einen App Multi-Tenant aus dem Manifest

  1. Im Azure-Portal, von den Einstellungen für die nativen Client-Anwendung Klinge, klicken Sie auf die Manifest Option.

    enter image description here

  2. Aktualisieren Sie den availableToOtherTenants Wert true.

    enter image description here

  3. Speichern Sie das Manifest.

    enter image description here

Erstellen einer App Multi-Tenant mit Azure AD Powershell

  1. Laden Sie das Azure AD Powershell v2-Modul (AzureAD): https://docs.microsoft.com/en-us/powershell/azure/install-adv2?view=azureadps-2.0
  2. Führen Sie das folgende:

    $appId = "<app ID>" 
    $app = Get-AzureADApplication -Filter "appId eq '$appId'" 
    Set-AzureADApplicatoin -ObjectId $app.ObjectId -AvailableToOtherTenants $true 
    

Das sollte es flicken. Warten Sie ein wenig und versuchen Sie es erneut.

+0

Es hat funktioniert, vielen Dank! Als ich das Manifest überprüfte, war das "AvailableToOtherTenants" tatsächlich "falsch". Wer hätte das gedacht? Zumal jedes Dokument, das ich bisher gefunden habe, feststellt, dass native Apps automatisch mandantenfähig sind. – Patsuan

+0

Sie * sollen * standardmäßig als Multi-Tenant erstellt werden. Dies ist ein bekanntes Problem im neuen (Vorschau-) Portal. Es wird bald angesprochen werden. –

Verwandte Themen