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

(Smaller) PR to add MicrosoftGraphClientService to the new API. #434

Merged
merged 34 commits into from
Aug 13, 2020

Conversation

jmprieur
Copy link
Collaborator

@jmprieur jmprieur commented Aug 12, 2020

Fixes #427

Add the MicrosoftGraphOptions, MicrosoftGraphServiceExtensions, TokenAcquisitionCredentialProvider (coming from the Blazor sample)

Update the test apps that where using graph

  • WebAppCallsMicrosoftGraph
  • BlazorServerCallsGraph

Updating the samples requires the following:

  • remove the package reference to the Microsoft Graph SDK, as it is no longer needed in the sample (brought by Microsoft.Identity.Web)
  • update the appsettings.Json to use the new names for the settings (BaseUrl and Scopes)
  • remove the implementation which was so far in the sample for the MicrosoftGraphService and it's token provider (this was the implementation brought by the project templates)
  • in startup.cs, remove the calls to services.AddMicrosoftGraph(scopes, Configuration.GetValue<string>("CalledApi:CalledApiUrl")); and replace it by what we agreed on with Damien:
 .EnableTokenAcquisitionToCallDownstreamApi()
                            .AddMicrosoftGraphServiceClient(Configuration.GetSection("GraphBeta"))

jmprieur and others added 28 commits August 3, 2020 21:41
Todo:
- see if we could have some commonalities between the Web app and Web API builder (configuration?)
- Enfoce configuration for CallsWebAPI can only be called if configuration for the AddMicrosoftWebApp/Api
- Renaming AddMicrosoftWebApp to AddMicrosoftIdentityPlatformWebApp,
- Renaming AddMicrosoftWebApi to AddMicrosoftIdentityPlatformWebApi,
 - MicrososoftAppCallingWebApiAuthenticationBuilder.AddInXXXTokenCaches etc ... return their parent builder.
… (#424)

* Make GetTokenForAppAsync less confusing and allow to pass tenantId #413

Checked with @hpsin and here is what we agreed to:
- Change the signature of `GetAccessTokenForUserAsync` to take a `string` (instead of a `IEnumerable<string>`) as there is only one possible string for a given resource of App Id URI AppIdUri: "AppIdUri/.default". Check that the resource ends in "./default"
- Add an additional optional parameter `tenant` to support this scenario, and verify that this tenant is not organizations (and of course common and consumers, which don't make sense)

```CSharp
public async Task<string> GetAccessTokenForAppAsync(string scope, string? tenant = null)
```

* Update src/Microsoft.Identity.Web/ITokenAcquisition.cs
Co-authored-by: jennyf19 <jeferrie@microsoft.com>

* Addressing PR feedback:
- Adding an aka.ms link to the error messages (https://aka.ms/ms-id-web/daemon-scenarios)
- using constants for the meta-tenants
- Testing all the meta tenant
Thanks @jennyf19 for this PR feedback

* Addressing @hpsin 's PR feedback.
…ntityWebApp

- Updating the ITokenAcquisition.GetTokenForAppAsync signature to match the class.

namespace blazor
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copied the TokenAcquisitionCredentialProvider from the blazor sample)

Base automatically changed from jennyf/newAPI to master August 12, 2020 13:55
@jennyf19
Copy link
Collaborator

we'll have to write tests for this.


Refers to: src/Microsoft.Identity.Web/MicrosoftGraph/MicrosoftGraphServiceExtensions.cs:94 in 14e1f35. [](commit_id = 14e1f35, deletion_comment = False)

@@ -30,7 +30,8 @@ public void ConfigureServices(IServiceCollection services)
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"))
.EnableTokenAcquisitionToCallDownstreamApi()
.AddInMemoryTokenCaches(); // Add a delegate overload. Should return the parent builder
.AddMicrosoftGraphServiceClient(Configuration.GetSection("GraphBeta"))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: question for asp .net maybe....AddMicrosoftGraph? or leave as is...i'm not sure. ...ServiceClient is more precise

@jennyf19
Copy link
Collaborator

looks good. i think there is some work to do around unit testing. i'll take see if i have time today to take a look at that.

Copy link
Collaborator

@jennyf19 jennyf19 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@jmprieur jmprieur merged commit a243cfd into master Aug 13, 2020
@jmprieur jmprieur deleted the jennyf/newApiPlusGraphService branch August 19, 2020 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants