7

Ich versuche, einen Schlüssel in meiner Azure AD-Anwendung mithilfe von Azure CLI hinzuzufügen. Wenn Sie jedoch die Azure CLI-API durchsuchen, scheint es, dass es keinen solchen Befehl gibt.Azure AD Hinzufügen von Schlüsseln über Azure CLI

Für exmaple:

Ich versuche, die Aufgabe von dem unten stehenden Link über Azure CLI zu automatisieren: http://blog.davidebbo.com/2014/12/azure-service-principal.html

I AD-Anwendung erstellen kann, Dienstprinzipal, aber ich kann nicht einen Weg finden um den Schlüssel für die neu erstellte AD-Anwendung hinzuzufügen.

Ich werde alle Ideen und Richtungen schätzen :)

Vielen Dank im Voraus!

+0

Was meinen Sie damit, indem Sie einen Schlüssel hinzufügen? – Thomas

+1

es ist Ende 2017 und es ist immer noch nicht möglich, das über das CLI zu tun – MMT

Antwort

1

Ich habe keine Erfahrung der Automatisierung des Hinzufügens des Schlüssels, ich bin mir nicht sicher, dass es sogar möglich ist, ehrlich zu sein. Sehen Sie sich jedoch die Dokumentation ApplicationEntity in der Graph-API an, möglicherweise ist es möglich, eine POST-Anfrage an den Web-Service zu senden.

2

Für eine neue AD-Anwendung können Sie beim Erstellen einen Schlüssel mit -p angeben. Zum Beispiel

azure ad app create -n <your application name> --home-page <the homepage of you application> -i <the identifier URI of you application> -p <your key> 

für eine bestehende AD-Anwendung sicher die Graph API kann die AD Anwendung Credential aktualisieren. Lesen Sie this API reference, und Sie können sehen, dass das Passwort Credential "POST, GET, PATCH" verwenden kann. Es ist jedoch zu kompliziert, die Graph-API zu verwenden. Ich habe das Azure CLI überprüft. Diese Funktionalität ist noch nicht implementiert und die Quelle ist für mich nicht lesbar. Dann habe ich mir Azure SDK für Python angeschaut, weil ich mit Python vertraut bin und herausgefunden habe, dass sie es bereits in 2.0.0rc2 implementiert haben. Siehe die GitHub Repo

Ich habe ein Python-Skript geschrieben. Aber, um mein Skript zu verwenden, müssen Sie nicht nur azur2.0.0rc2, sondern auch msrest und msrestazure installieren.

from azure.common.credentials import UserPassCredentials 
from azure.graphrbac import GraphRbacManagementClient, GraphRbacManagementClientConfiguration 
from azure.graphrbac.models import ApplicationCreateParameters, PasswordCredential 

credentials = UserPassCredentials("<your Azure Account>", "<your password>") 

subscription_id = "<your subscription id>" 

tenant_id = "<your tenant id>" 

graphrbac_client = GraphRbacManagementClient(
    GraphRbacManagementClientConfiguration(
     credentials, 
     subscription_id, 
     tenant_id 
    ) 
) 

application = graphrbac_client.application.get('<your application object id>') 

passwordCredential = PasswordCredential(start_date="2016-04-13T06:08:04.0863895Z", 
             end_date="2018-04-13T06:08:04.0863895Z", 
             value="<your new key>") 

parameters = ApplicationCreateParameters(application.available_to_other_tenants, 
            application.display_name, 
            "<the homepage of your AD application>", 
            application.identifier_uris, 
            reply_urls=application.reply_urls, 
            password_credentials = [passwordCredential]) 

application = graphrbac_client.application.update('<your application object id>', parameters) 

Das einzige Problem mit diesem Skript ist, dass Sie nur alle vorhandenen Schlüssel Ihrer AD-Anwendung überschreiben können. Sie können keinen neuen Schlüssel anhängen. Dies ist ein Problem der Graph-API. Die Graph-API erlaubt Benutzern nicht, einen vorhandenen Schlüssel zu lesen. Eine mögliche Lösung wäre, Ihre vorhandenen Schlüssel woanders zu speichern. Aber das bringt zusätzliches Sicherheitsrisiko.