Azure / azure-libraries-for-net

Azure libraries for .Net
MIT License
380 stars 192 forks source link

Page lacks enough information to explain how methods work #1243

Open jsquire opened 3 years ago

jsquire commented 3 years ago

Issue Transfer

This issue is being transferred from the Azure SDK for .NET repository, #1243.

Please be aware that @tgpinq is the author of the original issue and be sure to include them on any inquiries or replies.


@tgpinq commented on Mon Jun 07 2021

The method here and associated ones appear to be broken. None of the methods return more than 100 Applications and methods that should allow you to get more either can't be used as next-page-links are null or don't work as they simply return null.

Please provide documentation detailing how this method should be used, specifically how it can be used to list all applications in the tenant as this is the purpose of the method.

Thank you.


Document Details

Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

jsquire commented 3 years ago

The Microsoft.Azure.Management.Graph.RBAC.Fluent library is managed out of the azure-libraries-for-net repository; transferring this so that the right folks to assist can triage.

weidongxu-microsoft commented 3 years ago

For .NET, the development focus has shifted to the next generation of Azure SDKs which follows the new SDK guideline and introduces a set of important new features. Those new packages are currently in preview state and we are actively working on making it production ready. You can visit this link here to see the latest .NET packages: https://devblogs.microsoft.com/azure-sdk/october-2020-management-ga/

We have also published a few blog posts on why we are doing this: https://devblogs.microsoft.com/azure-sdk/introducing-new-previews-for-azure-management-libraries/

With this background, .NET Fluent is currently in a low maintenance mode, and we mostly do security and bug fixes. It is subject to deprecation in the future when the new set of .NET packages become Generally Available (GA). Please let us know if there are further questions, thanks!

weidongxu-microsoft commented 3 years ago

For MS graph please refer to https://developer.microsoft.com/en-us/graph/get-started/quick-start

This repo uses the AAD graph that going to be retired in 2022.

tgpinq commented 3 years ago

Hi Weidongxu, thank you for the swift reply.

My concern here is that the current library was clearly never finished. This is evident from the incomplete functionality, the empty docs and the helper text that was clearly placeholder. I need this functionality and I can't imagine I am the only one. What confidence can I have that Microsoft will actually provide this functionality in the new library when you clearly didn't get round to it in the old one?

tgpinq commented 3 years ago

Having been through the documentation you linked none of it makes any reference of interacting with AAD. It all relates to Azure Resources which are now what I am trying to interact with and is not the subject of the page that I am highlighting as missing key content. Please can you point me directly to the replacement method for listing all applications in AAD? If that doesn't exist yet please can you point me at the backlog containing that so I can review and monitor it to help work out what I do next? Thank you.

weidongxu-microsoft commented 3 years ago

@tgpinq This library is for ARM (manage Azure resource), it never really intend to do AAD.

tgpinq commented 3 years ago

@weidongxu-microsoft, you say that yet as a library it has a significant number of methods dealing with Groups, Users, Service Principals and Application Registrations.

I am writing an application that will list resources no longer required by my organisation. This includes resource groups, subnets and application registrations. Microsoft have published a library which appears to deal with all of those things but virtue of having method libraries that specifically state they deal with all of those things.

When I come to actually use part of that library (having invested time and effort into using a different part of it for resource groups) I find that the methods do not work as advertised, are clearly not fully implemented and there is no mention of this in the docs. This is simply not acceptable, it is very poor customer service and very poor designer practice. I appreciate that none of that is your fault but you are the representative of the organisation that is responsible and who continually publish unhelpful and incomplete documentation. It is very frustrating.

As a dotnet developer I wish to get all application registrations from my organisation's AAD. Clearly this library is not the way to do it and nor from what you seem to be saying is the upcoming one. That is fine if that is the case however doesn't help me get my app regs. I know I could get it via a direct API call but I would prefer to use the provided libraries if there is one that is designed to do this. Please could you point me to the documentation covering the method Microsoft would currently recommend that I use for this process?

weidongxu-microsoft commented 3 years ago

Sample with Microsoft.Graph.

           var graphClient = new GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) => {
                requestMessage
                    .Headers
                    .Authorization = new AuthenticationHeaderValue("Bearer", token);

                return Task.CompletedTask;
            }));
            var ret = graphClient.Applications.Request().GetAsync().Result;
weidongxu-microsoft commented 3 years ago

@tgpinq As I've mentioned, this library is in maintenance mode. As a developer I would suggest to avoid investing more in this SDK. Officially, I can only suggest this.

For AAD operation, please do check the library maintained by MS graph team themselves. Historically, this SDK include the unofficial API when there is no such official SDK (more, AAD graph API is to be retired in 2022). But now things changed.

weidongxu-microsoft commented 3 years ago

https://docs.microsoft.com/en-us/graph/migrate-azure-ad-graph-planning-checklist

tgpinq commented 3 years ago

@weidongxu-microsoft thank you, however you have linked me to a page that is telling me how to update to a depreciated library... If that library is depreciated persumably you have released it's replacement? Helpfully the page makes no mention of the replacement (perhaps something you could update it with) so please could you point me in the direction of the replacement?

weidongxu-microsoft commented 3 years ago

@tgpinq It is the page on how to migrate away from the to be deprecated AAD graph.

The whole doc is on its replacement - Microsoft Graph API. https://docs.microsoft.com/en-us/graph/overview