Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Permissions are different for /applications depending on whether id or appid is used as a key #440

Open
saraelsa opened this issue Jan 10, 2024 · 0 comments

Comments

@saraelsa
Copy link

saraelsa commented Jan 10, 2024

It seems that the least-privilege permission under the 'Application' scheme necessary for any operation on an application depends on whether it is addressed using its ID or its appID.

(I'm using the permissions document in the new directory.)

Application.ReadWrite.All and Application.ReadWrite.Owned are only least-privilege permissions for the 'Application' scheme if the app is addressed by its ID.

This is true, for instance, for /applications(appid={value})/federatedidentitycredentials.

It's also occasionally the opposite, with a permission being least-privilege only where it is addressed by its appId. This is true, for instance, with /applications(appid={value})/tokenlifetimepolicies and Application.ReadWrite.All.

There's also an odd repair action that's confusingly both not in alphabetical order and for which Application.ReadWrite.OwnedBy is the least-privilege permission for the 'Application' scheme with the POST method:

{ // for syntax highlighting
            "/applications(appid={value})/addkey": "",
            "/applications(appid={value})/addpassword": "",
            "/applications(appid={value})/removekey": "",
            "/applications(appid={value})/removepassword": "",
            "/applications(appid={value})/repair": "least=Application",
            "/applications/{id}}/repair": "least=Application",
            "/applications/{id}/addkey": "least=Application",
            "/applications/{id}/addpassword": "least=Application",
            "/applications/{id}/removekey": "least=Application",
            "/applications/{id}/removepassword": "least=Application",
            "/applications/{id}/synchronization/acquireaccesstoken": "least=Application",
} // for syntax highlighting

Is there a reason for this discrepancy?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant