Azure / Azure/azure-cli

az ad app update set knownClientApplications

Open
#18,761 3 comments 1 reaction 1 assignee Claimed by @jiasli View on GitHub
act-identity-squad feature-request Graph
Dominant language
Python
Stars
4.6k
Forks
3.5k
Avg merge
3d 2h
Merged PRs (30d)
60

Description

## Describe the bug
I am trying to set the `knownClientApplications` on the Azure AD Application Manifest, without much luck. I cannot find any examples of how to do this.

**Command Name**
`az ad app update`

**Errors:**
```
The command failed with an unexpected error. Here is the traceback:
Refuse str type as a valid iter type.
Traceback (most recent call last):
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py", line 231, in invoke
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 657, in execute
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 720, in _run_jobs_serially
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 712, in _run_job
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/role/commands.py", line 69, in graph_err_handler
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 691, in _run_job
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 328, in __call__
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/command_operation.py", line 240, in handler
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 447, in cached_put
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 441, in _put_operation
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/role/custom.py", line 1090, in patch_application
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/graphrbac/operations/applications_operations.py", line 321, in patch
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msrest/serialization.py", line 629, in body
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msrest/serialization.py", line 483, in _serialize
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msrest/serialization.py", line 783, in serialize_data
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msrest/serialization.py", line 523, in _serialize
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msrest/serialization.py", line 775, in serialize_data
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msrest/serialization.py", line 852, in serialize_iter
msrest.exceptions.SerializationError: Refuse str type as a valid iter type.

```

## To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

This is what I have tried:
- `az login` etc
- `az ad app update --id 123-4567 --set knownClientApplications=[abc-123]`

This fails with the above error. I have tried all manner of syntaxes to specify the `knownClientApplications`, without success. For example:
- `az ad app update --id 123-4567 --set knownClientApplications={abc-123}`
- `az ad app update --id 123-4567 --set knownClientApplications=@(abc-123)`
- `az ad app update --id 123-4567 --set knownClientApplications=[{abc-123}]`

all with and without quotes in various places.

The following line _does_ work, and removes the `knownClientApplications` as expected:

- `az ad app update --id 123-4567 --set knownClientApplications=[]`

I can also add them one-by-one like this:

- `az ad app update --id 123-4567 --add knownClientApplications abc-123`

So in short, I can get round this by clearing and re-adding each application, but why doesn't the `set` syntax work?

## Expected Behavior
The manifest's `knownClientApplications` array is settable via the az cli.
Ideally some documentation gives an example

## Environment Summary
```
Windows-10-10.0.18362-SP0
Python 3.8.9
Installer: MSI

azure-cli 2.23.0

```
## Additional Context

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.