Accessing the parentApplication breaks encapsulation; and "calling up" is generally considered a bad practice [by me at least].
I might give Each component a "myID" variable, like this:
[Bindable] public var myID : String;
Then pass that ID into each component:
<comp:MyComponent myID="{GlobalID}" />
If the ID Changes in one spot, Binding should update it elsewhere.
The alternative, which is used by a lot of frameworks, is to create a singleton object. Store the myID variable in that singleton object and have each component access that singleton object. The Cairngorm ModelLocator is a good singleton sample, but others exist.
As with the 'parentApplication.myID' approach, a singleton adds an external dependency to your component which breaks encapsulation and minimizes reuse. Using one is not a decision I would make lightly, but there are always trade offs.