| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| using Google.Apis.Auth; |
| using Google.Apis.Auth.OAuth2; |
| using IntegrationTests.IntegrationTests.Utils; |
| using IntegrationTests.Utils; |
| using System; |
| using System.Threading.Tasks; |
| using Xunit; |
|
|
| namespace IntegrationTests |
| { |
| public class OidcTests |
| { |
| [Fact] |
| public async Task OidcTokenProvider_ServiceAccountCredential() |
| { |
| GoogleCredential credential = Helper.GetServiceCredential(); |
|
|
| OidcToken token = await credential.GetOidcTokenAsync( |
| OidcTokenOptions.FromTargetAudience("https://this.is.a.test")); |
|
|
| |
| Assert.NotNull(await token.GetAccessTokenAsync()); |
| |
| |
| Assert.NotNull(token.TokenResponse.AccessToken); |
| |
| |
| Assert.NotNull(token.TokenResponse.ExpiresInSeconds); |
|
|
| var verificationOptions = new SignedTokenVerificationOptions(); |
| verificationOptions.TrustedAudiences.Add("https://this.is.a.test"); |
| |
| |
| |
| verificationOptions.IssuedAtClockTolerance = TimeSpan.FromMilliseconds(10); |
|
|
| var payload = await JsonWebSignature.VerifySignedTokenAsync(await token.GetAccessTokenAsync(), verificationOptions); |
| Assert.NotNull(payload); |
| Assert.Contains("https://this.is.a.test", payload.AudienceAsList); |
| } |
|
|
| [OnGceFact] |
| public async Task OidcTokenProvider_ComputeCredential() |
| { |
| |
| GoogleCredential credential = GoogleCredential.FromComputeCredential(); |
|
|
| OidcToken token = await credential.GetOidcTokenAsync( |
| OidcTokenOptions.FromTargetAudience("https://this.is.a.test")); |
|
|
| |
| Assert.NotNull(await token.GetAccessTokenAsync()); |
| |
| |
| Assert.NotNull(token.TokenResponse.AccessToken); |
| |
| |
| Assert.NotNull(token.TokenResponse.ExpiresInSeconds); |
|
|
| var verificationOptions = new SignedTokenVerificationOptions(); |
| verificationOptions.TrustedAudiences.Add("https://this.is.a.test"); |
| |
| |
| |
| verificationOptions.IssuedAtClockTolerance = TimeSpan.FromMilliseconds(10); |
|
|
| var payload = await JsonWebSignature.VerifySignedTokenAsync(await token.GetAccessTokenAsync(), verificationOptions); |
| Assert.NotNull(payload); |
| Assert.Contains("https://this.is.a.test", payload.AudienceAsList); |
| } |
| } |
| } |
|
|