7

Próbuję dodać klucz w moim Azure aplikacji AD wykorzystaniem Azure CLI. Wygląda jednak na to, że interfejs API Azure CLI nie ma takiego polecenia.Azure AD dodać klucze poprzez Azure CLI

Dla exmaple:

próbuję zautomatyzować zadania z linku poniżej poprzez Azure CLI: http://blog.davidebbo.com/2014/12/azure-service-principal.html

mogę utworzyć aplikację AD, świadczenia głównego, ale nie mogę znaleźć sposób aby dodać klucz do nowo utworzonej aplikacji AD.

Doceniam wszelkie pomysły i wskazówki :)

Z góry dziękuję!

+0

Co więc znaczy, dodając klucz? – Thomas

+1

to koniec 2017 roku i nadal nie można tego zrobić za pomocą interfejsu CLI – MMT

Odpowiedz

1

nie mam żadnego doświadczenia automatyzacji dodanie klucza, nie jestem pewien, że to w ogóle możliwe, aby być uczciwym. Jednak przyjrzeć się dokumentacji w Graph API ApplicationEntity, może to być możliwe za pomocą żądania POST do usługi internetowej.

2

Dla nowej aplikacji AD można określić klucza z -p podczas tworzenia. Na przykład:

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> 

W przypadku istniejącej aplikacji AD z pewnością interfejs API wykresów jest w stanie zaktualizować poświadczenie aplikacji AD. Przeczytaj this API reference, a zobaczysz, że poświadczenie hasła jest w stanie użyć "POST, GET, PATCH". Jednak korzystanie z Graph API jest zbyt skomplikowane. Sprawdziłem interfejs CLI platformy Azure. Ta funkcja nie została jeszcze zaimplementowana, a źródło jest dla mnie nieczytelne. Następnie przyjrzałem się Azure SDK dla Pythona, ponieważ znam Pythona i dowiedziałem się, że już go zaimplementował w wersji 2.0.0rc2. Patrz GitHub Repo

Napisałem skrypt Pythona. Aby jednak użyć mojego skryptu, musisz zainstalować nie tylko azure2.0.0rc2, ale także msrest i 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) 

Jedyny problem z tym skryptem polega na tym, że można zastąpić tylko wszystkie istniejące klucze aplikacji AD. Nie możesz dodać nowego klucza. Jest to problem interfejsu Graph API. Graph API nie pozwala użytkownikom na odczytanie istniejącego klucza. Jednym z możliwych rozwiązań byłoby przechowywanie istniejących kluczy w innym miejscu. Ale przyniesie to dodatkowe ryzyko bezpieczeństwa.

Powiązane problemy