2016-05-20 12 views
0

Ich dachte, dieses Mal würde ich Microsofts ADAL Bibliotheken verwenden, um mit Office365 zu interagieren.Wie verwende ich Microsoft ADAL für Java, um Service-Service-Anrufe durchzuführen?

ich eine Integrationsaufgabe zu erfüllen haben, so dass keine Interaktion mit dem Benutzer erforderlich ist, das ist, wo ich gefunden:

https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx

Ich bin in der Lage, die Token mit Client-Anmeldeinformationen zu erhalten. Aber laut dem Artikel sollte ich "nur" eine client_id und client_secret brauchen.

Ich konnte keine Methode für die AuthenticationContext-Klasse finden, die Unterstützung dafür vorschlagen.

Ich hoffe, ich übersehen etwas.

Ich weiß, dass ich die HTTP-Anfragen selbst durchführen kann, aber das vereitelt den Zweck der Verwendung der ADAL-Software.

Antwort

2

Die Methodensignatur Sie suchen ist:

public Future<AuthenticationResult> acquireToken(
    final String resource, 
    final ClientCredential credential, 
    final AuthenticationCallback callback) 

Die ClientCredential mit der client_id und client_secret der Anwendung erstellt. Hier ist ein Beispiel, das ich aus the sample included with ADAL4J entlehnt:

Future<AuthenticationResult> future = context.acquireToken(
    "https://graph.windows.net", 
    new ClientCredential(clientId, clientSecret), 
    null); 
result = future.get(); 

(. Im obigen context ist die Instanz von AuthenticationContext)

+0

Ich habe einen Zugriffstoken jetzt mit diesen Anmeldeinformationen, aber ... Beim Zugriff (in meinem Fall) crm online, ich bekomme http 401 (nicht autorisiert). In den Azure AD-Berechtigungen gibt es nur eine Option zum Angeben und das heißt: Zugreifen auf CRM Online als Organisationsbenutzer. Soll ich ein neues Thema zur Bearbeitung angehen oder kannst du @PhilippeSignoret aushelfen? – mpjjonker

+1

Sie sollten eine neue Frage starten, aber die Antwort lautet: CRM Online unterstützt nur App + User-Token (delegierte Berechtigungen), nicht nur App-Only. Wenn Ihr Prozess die Identität eines Benutzers selbst dann annehmen soll, wenn der Benutzer nicht vorhanden ist, kann dies durch das Aktualisierungs-Token erreicht werden, um neue Zugriffstoken zu erhalten. Dies ist jedoch ein fragiles (und riskantes) Setup. –