7

Sto tentando di aggiungere una chiave nell'applicazione Azure AD utilizzando la CLI di Azure. Ma guardando attraverso l'API della CLI di Azure sembra che non ci sia un tale comando.Azure AD aggiunge chiavi tramite CLI di Azure

Per exmaple:

Sto cercando di automatizzare il compito dal link sottostante via Azure CLI: http://blog.davidebbo.com/2014/12/azure-service-principal.html

posso creare applicazioni dC, servizio principale, ma non riesco a trovare un modo aggiungere la chiave per la nuova creazione di un'applicazione AD.

Io apprezzo tutte le idee e indicazioni :)

Grazie in anticipo!

+0

cosa intendi con l'aggiunta di una chiave? – Thomas

+1

è la fine del 2017 e non è ancora possibile farlo tramite la CLI – MMT

risposta

1

Non ho alcuna esperienza di automazione per l'aggiunta della chiave, non sono sicuro che sia persino possibile essere onesti. Tuttavia dai un'occhiata alla documentazione ApplicationEntity nell'API Graph, potrebbe essere possibile utilizzare una richiesta POST al servizio web.

2

Per una nuova applicazione AD, è possibile specificare una chiave con -p durante la creazione. Ad esempio,

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> 

per un'applicazione AD esistente, sicuramente il Graph API è in grado di aggiornare il AD Application credenziali. Leggi this API reference, e puoi vedere che la credenziale della password è in grado di usare "POST, GET, PATCH". Tuttavia, è troppo complicato utilizzare l'API Graph. Ho controllato la CLI di Azure. Quella funzionalità non è ancora stata implementata e la fonte è illeggibile per me. Quindi, ho dato un'occhiata ad Azure SDK per Python, perché ho familiarità con Python, e ho scoperto che l'hanno già implementato in 2.0.0rc2. Vedi il GitHub Repo

Ho scritto uno script python. Ma per usare il mio script devi installare non solo azure2.0.0rc2, ma anche msrest e msrestazure.

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) 

L'unico problema con questo script è che si è solo in grado di sostituire tutte le chiavi esistenti di voi l'applicazione dC. Non sei in grado di aggiungere una nuova chiave. Questo è un problema dell'API Graph. L'API Graph non consente agli utenti di leggere una chiave esistente. Una possibile soluzione potrebbe essere l'archiviazione delle chiavi esistenti da qualche altra parte. Ma questo porterà un ulteriore rischio per la sicurezza.

Problemi correlati