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.
Co więc znaczy, dodając klucz? – Thomas
to koniec 2017 roku i nadal nie można tego zrobić za pomocą interfejsu CLI – MMT