azure icon indicating copy to clipboard operation
azure copied to clipboard

azure_rm_adapplication does not properly manipulate optional_claims

Open kent007 opened this issue 11 months ago • 0 comments

SUMMARY

azure_rm_adapplication does not properly ingest arguments for the optional_claims section of an application.

There are three different types of tokens that may have optional claims set. The module does not allow specifying which token the claims are for.

Currently it is impossible to set any optional_claims using this module. The current arg format results in a crash.

ISSUE TYPE
  • Bug Report
COMPONENT NAME

azure_rm_adapplication

ANSIBLE VERSION
ansible [core 2.11.12]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/kmcdonough/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = <redacted>
  ansible collection location = /home/kmcdonough/.ansible/collections:/usr/share/ansible/collections
  executable location = <redacted>
  python version = 3.8.10 (default, Nov 22 2023, 10:22:35) [GCC 9.4.0]
  jinja version = 3.1.2
  libyaml = True
COLLECTION VERSION
2.1.1
CONFIGURATION
n/a
OS / ENVIRONMENT
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
STEPS TO REPRODUCE
- name: create application
  azure.azcollection.azure_rm_adapplication:
    available_to_other_tenants: false
    display_name: "test"
    optional_claims:
    - name: aud
      essential: true
  register: application_response
EXPECTED RESULTS

The application should be created with the optional claims set for at least one token type

ACTUAL RESULTS
The full traceback is:
  File "/tmp/ansible_azure.azcollection.azure_rm_adapplication_payload_ad_f0j70/ansible_azure.azcollection.azure_rm_adapplication_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication.py", line 528, in create_resource
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/tmp/ansible_azure.azcollection.azure_rm_adapplication_payload_ad_f0j70/ansible_azure.azcollection.azure_rm_adapplication_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_adapplication.py", line 708, in create_application
  File "/home/kent/cdrive/Documents/project1/ansible/venv/lib/python3.8/site-packages/msgraph/generated/applications/applications_request_builder.py", line 82, in post
    request_info = self.to_post_request_information(
  File "/home/kent/cdrive/Documents/project1/ansible/venv/lib/python3.8/site-packages/msgraph/generated/applications/applications_request_builder.py", line 131, in to_post_request_information
    request_info.set_content_from_parsable(self.request_adapter, "application/json", body)
  File "/home/kent/cdrive/Documents/project1/ansible/venv/lib/python3.8/site-packages/kiota_abstractions/request_information.py", line 143, in set_content_from_parsable
    writer.write_object_value(None, values)
  File "/home/kent/cdrive/Documents/project1/ansible/venv/lib/python3.8/site-packages/kiota_serialization_json/json_serialization_writer.py", line 284, in write_object_value
    self._serialize_value(temp_writer, value)
  File "/home/kent/cdrive/Documents/project1/ansible/venv/lib/python3.8/site-packages/kiota_serialization_json/json_serialization_writer.py", line 462, in _serialize_value
    value.serialize(temp_writer)
  File "/home/kent/cdrive/Documents/project1/ansible/venv/lib/python3.8/site-packages/msgraph/generated/models/application.py", line 282, in serialize
    writer.write_object_value("optionalClaims", self.optional_claims)
  File "/home/kent/cdrive/Documents/project1/ansible/venv/lib/python3.8/site-packages/kiota_serialization_json/json_serialization_writer.py", line 284, in write_object_value
    self._serialize_value(temp_writer, value)
  File "/home/kent/cdrive/Documents/project1/ansible/venv/lib/python3.8/site-packages/kiota_serialization_json/json_serialization_writer.py", line 462, in _serialize_value
    value.serialize(temp_writer)
fatal: [test-host]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "ad_user": null,
            "adfs_authority_url": null,
            "allow_guests_sign_in": null,
            "api_profile": "latest",
            "app_id": null,
            "app_roles": null,
            "auth_source": "auto",
            "available_to_other_tenants": false,
            "cert_validation_mode": null,
            "client_id": null,
            "cloud_environment": "AzureCloud",
            "credential_description": null,
            "display_name": "strawman_idb_rw",
            "end_date": null,
            "homepage": null,
            "identifier_uris": null,
            "key_type": "Password",
            "key_usage": "Verify",
            "key_value": null,
            "log_mode": null,
            "log_path": null,
            "native_app": null,
            "oauth2_allow_implicit_flow": null,
            "optional_claims": [
                {
                    "additional_properties": null,
                    "essential": true,
                    "name": "aud",
                    "source": null
                }
            ],
            "password": null,
            "profile": null,
            "reply_urls": null,
            "required_resource_accesses": null,
            "secret": null,
            "sign_in_audience": null,
            "start_date": null,
            "state": "present",
            "subscription_id": null,
            "tenant": null,
            "thumbprint": null,
            "x509_certificate_path": null
        }
    },
    "msg": "Error creating application, display_name: strawman_idb_rw - 'list' object has no attribute 'serialize'"
}

kent007 avatar Mar 04 '24 21:03 kent007